Thread.join
join 是让当前主线程等待子线程执行完才退出。
主线程向下运行时,碰到了t1.join(),t1要申请加入到运行中来,要CPU执行权。
* 这时候CPU执行权在主线程手里,主线程就把CPU执行权给放开,陷入冻结状态。
* 活着的只有t1了,只有当t1拿着执行权把这些数据都打印完了,主线程才恢复到运行中来
* 这时候CPU执行权在主线程手里,主线程就把CPU执行权给放开,陷入冻结状态。
* 活着的只有t1了,只有当t1拿着执行权把这些数据都打印完了,主线程才恢复到运行中来
回到Join,这里所说的调用方就是主线程,主线程调用线程t的Join方法,导致主线程阻塞,直到t线程执行完毕,才返回到主线程中。
简单理解,在主线程中调用t.Join(),也就是在主线程中加入了t线程的代码,必须让t线程执行完毕之后,主线程(调用方)才能正常执行。
简单理解,在主线程中调用t.Join(),也就是在主线程中加入了t线程的代码,必须让t线程执行完毕之后,主线程(调用方)才能正常执行。