99个线程顺序打印1到99:volatile与synchronized关键字的应用

导读: 使用99个线程,顺序打印1到99。基本设计思路是:定义一个全局变量totalNum来控制当前需要打印哪个数字每个线程都使用一个顺序编号num当某个线程检测到totalNum与num相等时,打印

丝瓜网小编提示,记得把"99个线程顺序打印1到99:volatile与synchronized关键字的应用"分享给大家!

使用99个线程,顺序打印1到99。基本设计思路是:

定义一个全局变量totalNum来控制当前需要打印哪个数字

每个线程都使用一个顺序编号num

当某个线程检测到totalNum与num相等时,打印num,并且在该线程递增num,以便通知下一个线程打印。

多线程相关:totalNum使用volatile关键字修饰保证线程可见性;每个线程内部基于synchronized关键字和基于Object类的wait方法等待轮到自己打印。

源码实现如下:

丝瓜网 crfgs.com