java线程按照指定的顺序执行

方式一、声明三个静态thread对象

在通过.start()分别执行三个线程的时候,分别调用.join()方法。

         首先可以看到join方法是线程安全的,其次可以结合上图一起看,当传入参数为0时,会命中一个wait(0)的方法,有经验的同学应该能直接看懂,这里表示等待。但是需要说明的是,这里的等待绝对不是等待调用者,而是阻塞的主线程,t1,t2,t3只是子线程,当子线程运行完毕后,主线程结束等待。这里演示了join的工作方式,也证实了join能让我们在程序中达到自己想要的效果。

方式二、 利用Executors线程池

      利用newSingleThreadExecutor()方法依然能够达到我们期待的效果,其实原理很简单,方法内部是一个基于FIFO的队列,也就是说,当我们依次将t1,t2,t3加入队列中时,实际在就绪状态的只有t1这个线程,t2,t3则会被添加到队列中,当t1执行完毕后,则会继续执行队列中的其他线程。

文章摘自:https://blog.csdn.net/u010185035/article/details/81172767

你可能感兴趣的:(java线程按照指定的顺序执行)