public static void main(String[] args) {
String[] urls = new String[]{"http://www.dmoz.org/", "http://www.dmoz.org/Computers/Computer_Science/","https://docs.oracle.com/en/"};
// Create and start workers
List workers = new ArrayList<>(urls.length);
for (String url : urls) {
Worker w = new Worker(url);
workers.add(w);
new Thread(w).start();
}
// Retrieve results
for (Worker w : workers) {
Elements results = w.waitForResults();
if (results != null)
System.out.println(w.getName()+": "+results.size());
else
System.err.println(w.getName()+" had some error!"); }
}
}
class Worker implements Runnable {
private String url;
private Elements results;
private String name;
private static int number = 0;
private final Object lock = new Object();
public Worker(String url)
{
this.url = url;
this.name = "Worker-" + (number++);
}
public String getName()
{
return name;
}
@Override
public void run() {
try {
Document doc = Jsoup.connect(this.url).get();
Elements links = doc.select("a");
// Update results
synchronized (lock) {
this.results = links;
lock.notifyAll();
}
} catch (IOException e) {
// You should implement a better error handling code..
System.err.println("Error while parsing: "+this.url);
e.printStackTrace();
}
}
public Elements waitForResults() {
synchronized (lock) {
try {
while (this.results == null) {
lock.wait();
}
return this.results;
} catch (InterruptedException e)
{
// Again better error handling
e.printStackTrace();
}
return null;
}
}
2017년 8월 29일 화요일
jsoup url 3times
jsoup java 샘플 소스
피드 구독하기:
댓글 (Atom)
-
Rosewell 사건의 유일한 생존자인 외계인 Airl에 관한 이야기를 전해 드리고자 합니다. 이책은 우리에게 정말 귀한 정보 와 통찰력을 주며, 왜 이렇게 삶이란 것이 깊은 고뇌를 동반하는 것인 과정인지 근본적인 대답을 해주며, 죽는다는 것이 어렵...
-
아치 리눅스 한글 간단 사용기 한글 입력기로 ibus 사용 하기로 한다. nabi 도 좋긴 한데 구글 크롬과 심각한 버그로 쓰기 힘든 상태 이므로 nabi 는 패스 하기로 아이뻐스 설치 pacman -S ibus ibus-hangul ...
-
중국 쌍색구(双色球) 빨간공 6개 : 1~33 판란색 1개 : 1~16 빨간색, 파란색 두가지 색이라 쌍색구 라 함 APP LINK https://play.google.com/store/apps/details?id=gotopark....
댓글 없음:
댓글 쓰기