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 샘플 소스
text base network monitor tools
text base network monitor tools
nload
iftop
iptraf
nethogs
bmon
tcptrack
speedometer
pktstat
netwatch
trafshow
2017년 8월 28일 월요일
뒤로가기 두번 나가기
public
boolean
onKeyDown(
int
keyCode, KeyEvent event){
switch
(keyCode){
case
KeyEvent.KEYCODE_BACK:
String alertTitle =
"Auto Scheduler"
;
String buttonMessage =
"어플을 종료하시겠습니까?"
;
String buttonYes =
"Yes"
;
String buttonNo =
"No"
;
new
AlertDialog.Builder(majSelectActivity.
this
)
.setTitle(alertTitle)
.setMessage(buttonMessage)
.setPositiveButton(buttonYes,
new
DialogInterface.OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which) {
// TODO Auto-generated method stub
moveTaskToBack(
true
);
finish();
}
})
.setNegativeButton(buttonNo,
null
)
.show();
}
return
true
;
}
출처: http://twinw.tistory.com/33 [흰고래의꿈]
피드 구독하기:
글 (Atom)
-
Rosewell 사건의 유일한 생존자인 외계인 Airl에 관한 이야기를 전해 드리고자 합니다. 이책은 우리에게 정말 귀한 정보 와 통찰력을 주며, 왜 이렇게 삶이란 것이 깊은 고뇌를 동반하는 것인 과정인지 근본적인 대답을 해주며, 죽는다는 것이 어렵...
-
呵呵大笑(가가대소) : 우스워서 소리를 크게 내어 웃음 家家戶戶(가가호호) : 집집마다 家鷄野雉(가계야치) : 집안에서 기르는 닭과 산의 꿩이란 뜻 자기 것은 하찮게 여기고 남의 것만 좋게 여김을 비유 可高可下(가고가하) : 어진 사람은 지위...
-
이번에는 엑셀(Excel)의 고급기능 중의 하나인 매크로(Macro)에 대해 알아보겠습니다. 매크로는 엑셀에서 꼭 필요한 것은 아니지만 좀 더 편안한 작업을 위해 필요한 기능입니다. 반복적으로 자주 사용하는 작업들을 매번 수행하자면 정말 번거롭기...