java判断线程是否执行完毕,java判断线程状态

  java判断线程是否执行完毕,java判断线程状态

  00-1010方法1方法2方法3

  00-1010通过Thread类中的isAlive()方法确定线程是否处于活动状态。

  线程启动后,只要还没有运行完,就会返回true。

  【注意】如果只是想等其他线程运行完再继续操作,可以执行t.join(),即在t执行完之前挂起。

  00-1010通过Thread.activeCount()方法判断当前线程的线程组中活动线程的数量。当它为1时,其他线程结束运行。

  00-1010用java.util.concurrent.Executors中的方法创建一个线程池,用这个线程池启动线程。在所有要启动的线程启动后,执行线程池的shutdown()方法,即在所有线程完成后关闭线程池。然后通过线程池的isTerminated()方法,判断线程池是否已经关闭。线程池的成功关闭意味着所有线程都已运行完毕。

  导入Java . util . concurrent . executorservice;导入Java . util . concurrent . executors;公共类Test { public static void main(String args[])抛出interrupted exception { ExecutorService exe=executors . newfixedthreadpool(50);for(int I=1;I=5;I){ exe . execute(new SubThread(I));} exe . shut down();while(true){ if(exe . is terminated()){ system . out . println(结束了!);打破;} thread . sleep(200);}}}确定线程池中的所有线程是否都已执行完的另一个解决方案是使用CountDownLatch。CountDownLatch是一个灵活的闩锁实现,它可以让一个或多个线程等待一组事件的发生。锁定状态包括初始化为正数的计数器,指示要等待的事件数。countDown方法递减计数器,指示事件已经发生,而await方法等待计数器到达零,指示需要等待的一切都已经发生。你可以使用加锁来设计程序以达到目的:

  公共类countdownlatchpareach { undefined public static void main(String[]args)抛出IOException,interrupted exception { undefined final int nThreads=10;final CountDownLatch end gate=new CountDownLatch(n threads);最终文件流=新文件( c : temp stone feng stream . txt );final output stream OS=new file output stream(流);final output streamwriter writer=new output streamwriter(OS);ExecutorService exec=executors . newcachedthreadpool();for(int I=0;i nThreadsI){未定义的最终整型数=I;Runnable task=new Runnable(){ undefined @ Override public void run(){ undefined try { undefined writer . write(string . value of(num) n );} catch(io exception e){ undefined e . printstacktrace();} finally { undefined end gate . count down();} } };exec.submit(任务);} endgate . await();writer . write(-END- n );writer . close();}}}就这样。本文介绍了Java如何判断线程是否结束。关于Java判断线程是否结束的更多信息,请搜索之前关于热门IT的文章或者继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: