Java|简单卖票程序探究Thread.join()的作用

这次探究直接用同步卖票的例子来分析(每个线程只能卖100张):
Java|简单卖票程序探究Thread.join()的作用
文章图片

Java|简单卖票程序探究Thread.join()的作用
文章图片

运行结果:没用使用join()前,交替卖票

Java|简单卖票程序探究Thread.join()的作用
文章图片

运行结果:前100张票都是线程0在卖,等线程0结束了以后,线程1和线程2才开始交替卖票
Java|简单卖票程序探究Thread.join()的作用
文章图片

运行结果:线程0和线程1交替卖票,线程0结束后线程2才开始卖票
上面的例子看不出线程0和线程1的关系,所以把卖票中睡眠时间改成0
Java|简单卖票程序探究Thread.join()的作用
文章图片

Java|简单卖票程序探究Thread.join()的作用
文章图片

Java|简单卖票程序探究Thread.join()的作用
文章图片

运行结果: 线程0和线程1依旧交替卖票,线程0卖完了线程2就可以开始卖票,后面就是线程1和线程2交替卖票
总结:join()方法可以使还没启动的线程(线程2)等待调用join()方法的线程(线程0)执行完才启动线程(线程2);join()方法不会影响已经启动了的线程(线程1)
【Java|简单卖票程序探究Thread.join()的作用】

    推荐阅读