<分区>
- 什么是线程
- 使用互斥量和不使用互斥量的区别
- 使用
join()
方法和不使用join()
的区别 - 当您使用
std::thread
类构造函数和使用pthread
创建线程时调用哪些低级函数。
我已经在网上看了资料,我仍然问这个问题只是为了进一步加强我的想法。 提前致谢
<分区>
join()
方法和不使用 join()
的区别std::thread
类构造函数和使用 pthread
创建线程时调用哪些低级函数。我已经在网上看了资料,我仍然问这个问题只是为了进一步加强我的想法。 提前致谢
最佳答案
1) 线程允许并行执行您的程序。在您的程序中使用多个线程允许多个处理器内核执行您的代码,从而(通常)加速程序。
2) 因为线程允许并行执行代码,所以可能会发生线程 #1 正在读取数据而线程 #2 正在修改此数据,这可能会导致一些您不希望发生的奇怪情况。互斥体通过让线程在这些特定的关键部分等待轮到它们来阻止这种行为。
3) 使用 thread.join()
使当前线程等待 thread
对象的完成,该对象被调用 join()
.
4) 这确实是特定于操作系统的。例如,基于 Unix 的系统在创建 std::thread
时使用 pthread
作为底层线程类。编译器供应商实现了这一点。
关于c++ - 线程基本..需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34472053/