【发布时间】:2012-12-07 10:46:32
【问题描述】:
我对线程基础有疑问。如果我启动一个新线程 T1,主线程必须等待 T1 加入或无需等待即可继续执行?
如果必须等待,我可以让主线程和新线程异步运行吗?
【问题讨论】:
标签: c++ multithreading
我对线程基础有疑问。如果我启动一个新线程 T1,主线程必须等待 T1 加入或无需等待即可继续执行?
如果必须等待,我可以让主线程和新线程异步运行吗?
【问题讨论】:
标签: c++ multithreading
如果你不调用join() 两个线程同时执行。默认情况下,线程异步运行。 join() 阻塞调用线程,直到线程终止。
我想补充一点,使线程同步执行,提供并发控制机制。
大家可以探索一下POSIX Threads Programming
【讨论】:
t1.join(),主线程将不得不等待它,对吧?谢谢!。
ti.join(),那么主线程将等待。
join(),一旦线程完成计算,它会自行与主线程重聚,不是吗?我的意思是,一旦完成,它就会自我毁灭。如果主线程在另一个线程之前完成怎么办?那么这将以未定义的行为结束,对吧?谢谢。