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

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

以下是引用片段:

if(e.getSource()==startItem)

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

try {  URL url_url=new URL(web_url);

web_host=url_url.getHost();

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

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

new Thread(  new Runnable(){   public void run()

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

tpool=new ThreadPoolExecutor(minN,maxN,aliveT,  TimeUnit.SECONDS,

new LinkedBlockingQueue()/*,  new ThreadPoolExecutor.CallerRunsPolicy()*/);

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

String tempstr=”


+  “创建线程池:”

+  “
设置最小线程数目:”+minN+  “
设置最大线程数目:”+maxN+  “
设置空闲线程存活时间(秒):”+aliveT+  “
设置阻塞线程队列大小为:”+blockQN+  “


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

+  “
”+dir_path+  “


+  “
爬取入口网页为:”

+  “
”+web_url+”


”;

setEditorContent(false,tempstr);

addToUnProQ(web_url);

String geturl=null;

getPage gt=null;

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

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

geturl=delFromUnProQ();

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

gt=new getPage(geturl);

tpool.execute(gt);

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

}  }  tpool.shutdown();

tpool=null;

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

//setEditorContent(true,shuoming);

}   }).start();

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

String comd = “explorer http://www.blesslucky.com/”;

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

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

}   }  }

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

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

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

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

微信公众号

TechTarget

官方微博

TechTarget中国

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值