当pthread启动时,它需要一个互斥锁来访问先前在生成它的线程中写入的全局数据

Hen*_*ers 3 c++ multithreading pthreads

我在Linux上有一个带有两个线程的c ++程序线程A将一些数据写入std :: map没有其他数据会写入此映射然后线程A创建线程B线程B从地图读取数据

那么在这种情况下我需要使用Mutex吗?

如果没有,那么指定的保证在哪里.

Ker*_* SB 5

不可以.线程创建是一个同步点,所以第一个线程在创建第二个线程之前产生的所有效果将在创建第二个线程时"发生"(以某种方式可以使用标准).

更精确一点,在一个线程的上下文中创建并稍后加入另一个线程......

  • 线程创建之前发生的一切 - 在线程函数内部的任何内容之前,和
  • 线程函数内的所有内容都发生在线程加入之后的任何内容之前.