【发布时间】:2015-03-04 10:27:27
【问题描述】:
我最近一直在研究线程和线程管理,我发现有些东西让我感到困惑,那就是连接线程和普通函数调用有什么区别?
已经加入的线程会阻塞调用线程,这和函数调用的功能不一样吗?
【问题讨论】:
-
在线程创建和join之间,调用线程可以做其他事情。对于函数调用,情况并非如此。
标签: java c++ multithreading boost-thread
我最近一直在研究线程和线程管理,我发现有些东西让我感到困惑,那就是连接线程和普通函数调用有什么区别?
已经加入的线程会阻塞调用线程,这和函数调用的功能不一样吗?
【问题讨论】:
标签: java c++ multithreading boost-thread
当你调用 .join 时它会阻塞。在创建线程和 thread.join 之间,您可以调用许多函数。从图表上看,它看起来像这样:
main-thread
|
new thread() ----
| |
| f'()
f1() |
| |
f2() |
| f''()
f3() |
| |
thread.join -----
【讨论】:
【讨论】:
如果您只是为了立即加入线程而分离线程,那么您不应该使用线程。
使用线程的好处是你可以让线程完成它的工作,离开并做更多的处理,然后当你真正需要结果时调用join。
【讨论】: