多个线程执行时,join函数的位置很关键
Topic sourcethread Thread-1 >>> yangboy >>> 10 thread Thread-1 >>> yangboy >>> 9 thread Thread-1 >>> yangboy >>> 8 thread Thread-1 >>> yangboy >>> 7 thread Thread-1 >>> yangboy >>> 6 thread Thread-1 >>> yangboy >>> 5 thread Thread-1 >>> yangboy >>> 4 thread Thread-1 >>> yangboy >>> 3 thread Thread-1 >>> yangboy >>> 2 thread Thread-1 >>> yangboy >>> 1 thread Thread-2 >>> hannah >>> 10 thread Thread-2 >>> hannah >>> 9 thread Thread-2 >>> hannah >>> 8 thread Thread-2 >>> hannah >>> 7 thread Thread-2 >>> hannah >>> 6 thread Thread-2 >>> hannah >>> 5 thread Thread-2 >>> hannah >>> 4 thread Thread-2 >>> hannah >>> 3 thread Thread-2 >>> hannah >>> 2 thread Thread-2 >>> hannah >>> 1
- 1
梦想家高先森
样例中给的例子都是下面的写法
但是在线程执行函数需要非常长时间时,操作系统会在t1和t2线程间不断切换,而
join()
的作用仅仅是使得在副线程还未执行结束时,主线程不得提前结束,所以这里的输出顺序会显得乱,改成串行,相当于阻塞,使得主线程当做两个线程中间的切换开关,下面便是例子。