什么是关键部分?

Jak*_*ake 7 c++ critical-section

只是想对此有点清晰.想象一下,我使用了EnterCriticalSection的windows api.我打电话给他们所有人EnterCriticalSection(&criticalsection);

这是多线程的线程函数

void thread (){

//enter critical section  (part 1)
data
//leave critical section
///more data 1
//entercritical section  (part 2)
//more data 2
//leave critical section 

}
Run Code Online (Sandbox Code Playgroud)

一旦线程进入关键(第1部分),其他线程无法进入该部分,无论更多数据1是否实际上有任何共享数据或不正确?同样在此期间,其他线程也不能进入临界区的第2部分.

ieh*_*ich 10

关键部分是代码块.如果任何线程进入它,则没有其他线程可以进入,直到它空闲.如果1和2是不同的关键部分(即由不同的信号量处理),如果1被占用,则有人可以输入2.