可以分离线程导致撕裂写入

时间:2014-01-26 02:31:16

标签: c++ multithreading c++11 parallel-processing thread-safety

美好的一天,

我是线程新手,我想知道我是否有类似的东西(C ++的上下文和X线程库):

//Pseudo code...//
void OnThread() {
    someGlobalVar = 2;
    someGlobalVar += 4;
}
void main()
{
    ThreadHandle someThreadHandle = MakeThread( &OnThread );
    //Can a torn write occur?//
    someThreadHandle.Detach();
    //Can "someGlobalVar" be trusted?//
    std::cerr << someGlobalVar << "\n";
    return ( 0 );
}

someGlobalVar是否应用了撕裂的写入,分离后是否可以认为是“安全的”?

1 个答案:

答案 0 :(得分:1)

只要程序仍在运行,分离线程是安全的,分离后线程将继续运行。但是使用一个会阻塞的连接会更安全,直到线程完成执行。