专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-963-0016      微信咨询  |  联系我们

如何让AB两个线程依次执行_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/7 1:32:18       共计:3619 浏览

如何让AB两个线程依次执行?

对于线程串行的问题,Java提供了几个方案可供选择。先定义A、B两个线程:

方案一:使用Thread类的join方法

Thread的join方法是指阻塞主线程,让当前线程执行完再让CPU时间片执行主线程。那么上面定义的A、B两个线程需要让A执行完之后再执行B,只需要A.join()即可。如下:

A.start();

try {

A.join(3000); //这里填写的超时时间可以省略,具体意义可自行查询。也可使用A.join();

} catch (InterruptedException e) {

e.printStackTrace();

}

B.start();

方案二:使用Executors来做任务调度

同样针对上述定义的A、B两个线程,需要在A执行完之后再执行B,线程不错乱,使用Executors类的静态方法new一个单线程的队列出来,将A、B两个任务放进去一次执行。具体代码如下:

ExecutorService exeService = Executors.newSingleThreadExecutor();

exeService.submit(A);

exeService.submit(B);

exeService.shutdown();

方案二比方案一要优雅。而且根据join方法的底层实现,使用了Thread的wait的native方法来执行等待,所以原则上也可以使用Thread的wait方法来执行等待以此实现A、B线程的依次执行。但Java官方不建议使用wait、notify方法,就遵循官方规范吧。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:我的世界1710用什么版本的java_java | ·下一条:netty框架与spring区别_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有