c++ - 线程基本..需要帮助

标签 c++ multithreading join std mutex

<分区>

  1. 什么是线程
  2. 使用互斥量和不使用互斥量的区别
  3. 使用 join() 方法和不使用 join() 的区别
  4. 当您使用 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/

相关文章:

python - Pandas : join dataframes and merge values of identical columns

c++ - doxygen C++ 内联模板文档

c++ - 关闭父级以调用隐藏或显式关闭时消息框未关闭

c++ - 加载共享库时出错

python - 从线程停止 WxPython 应用程序的主循环需要窗口焦点

c++ - 如何应对修改原子值

MySQL 中 select 的子查询

c++ - 定义 const 数组类型的语法

C++ boost 线程 : having a worker thread pause and unpause based on mutexes/conditions using a concurrent queue

mysql - 选择 10 行与其他表中的所有行连接