多线程如何控制执行顺序

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

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

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

  • 多线程如何控制执行顺序

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

  • 多线程如何控制执行顺序

 

转载于:https://my.oschina.net/MjShao/blog/1833784