多线程如何控制执行顺序

2018/06/22 01:37
阅读数 1K
  • 线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)五种状态

  • 原因: 正常逻辑下几个线程通过start()来启动并执行,存在线程执行顺序随机的问题

  • 方案一:采用Thread.join();方法去保证多线程的执行顺序。ps:主要作用是让主线程等待子线程完成之后才能继续执行。源码中逻辑是子线程isAlive()则wait(0)

  • 方案二:如果只是会上面的方法是不够的,显得不够逼格。于是想到java.util.concurrent这个并发工具包,其中实现方式如图:

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部