顺序十次打印ABC

无意中看到了多线程方面的知识,就想到了这道题,其实这道题只需要弄懂线程间的同步与互斥即可,具体思路如下

开启三个线程,分别打印ABC,并用三个boolean变量表示该线程是否可以进行打印

对于A线程,当其不能被打印时,调用wait方法释放锁,并将其挂起到线程池中,若能打印(通过前面所示的boolean变量进行判断),则打印处A并且调用nitifyAll方法来唤醒挂起再线程池中的线程,最后调整布尔变量,让B能打印,同理B和C一样,源码如下

顺序十次打印ABC_第1张图片

顺序十次打印ABC_第2张图片

顺序十次打印ABC_第3张图片

顺序十次打印ABC_第4张图片

运行结果:

顺序十次打印ABC_第5张图片

你可能感兴趣的:(顺序十次打印ABC)