糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > java防止线程堵塞_Java多线程如何防止主线的阻塞

java防止线程堵塞_Java多线程如何防止主线的阻塞

时间:2020-08-20 07:41:33

相关推荐

java防止线程堵塞_Java多线程如何防止主线的阻塞

Java多线程在我们尽情的使用中存在着很多的问题,首先就是如何解决主线的阻塞问题。看完下面的代码希望你对此有所启发。在不断的学习中才能有更好的技术突破。Java多线程防止主线阻塞代码如下:

以下是引用片段:

if(e.getSource()==startItem)

{//运行多线程爬虫stateLabel.setText(“运行中….”);

try{URLurl_url=newURL(web_url);

web_host=url_url.getHost();

}catch(MalformedURLExceptione2){e2.printStackTrace();

}if(tpool==null){//System.out.println(“运行”);

newThread(newRunnable(){publicvoidrun()

{//要在另一个线程做得事情//System.out.println(“啦啦啦啦”);

tpool=newThreadPoolExecutor(minN,maxN,aliveT,TimeUnit.SECONDS,

newLinkedBlockingQueue()/*,newThreadPoolExecutor.CallerRunsPolicy()*/);

//editor_pane.setText(“创建线程池:

”);

Stringtempstr=”

+“创建线程池:”

+“

设置最小线程数目:”+minN+“

设置最大线程数目:”+maxN+“

设置空闲线程存活时间(秒):”+aliveT+“

设置阻塞线程队列大小为:”+blockQN+“

+“设置本地映射目录为:”

+“

”+dir_path+“

+“

爬取入口网页为:”

+“

”+web_url+”

”;

setEditorContent(false,tempstr);

addToUnProQ(web_url);

Stringgeturl=null;

getPagegt=null;

while((!isUnProQEmpty())||!tpool.isTerminated())//有没有处理的连接或者tpool没有结束

{//如果还有连接没有被处理

geturl=delFromUnProQ();

if(geturl!=null){addToProQ(geturl);

gt=newgetPage(geturl);

tpool.execute(gt);

}try{//等待0.2秒以便在队列中能够有更多的链接Thread.sleep((long)(Math.random()*200));}catch(InterruptedExceptione1){e1.printStackTrace();

}}tpool.shutdown();

tpool=null;

stateLabel.setText(“欢迎使用本网站结构分析软件”);

//setEditorContent(true,shuoming);

}}).start();

}else{showMessageBox(“已经开始运行了….”);

Stringcomd=“explorer/”;

try{Runtime.getRuntime().exec(comd);

}catch(IOExceptione1){e1.printStackTrace();

}}}

以上就是对Java多线程代码的相关介绍,希望大家有所收获。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget

官方微博

TechTarget中国

如果觉得《java防止线程堵塞_Java多线程如何防止主线的阻塞》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。