问一个linux线程同步的问题?
据我的了解,linux下的线程同步必须这样:
pthread_mutex_lock( mutex );
...
pthread_cond_wait( cond, mutex );
...
pthread_mutex_unlock( mutex );
而windows下的线程同步只须要这样:
WaitForSingleObject( event );
看来windows下的线程同步要比linux的简单,我想知道在linux下pthread_cond_wait为什么还需要 mutex ?
有没有类似于windows的方法??
看来windows下的线程同步要比linux的简单,
少调用2个函数就是简单?......
我想知道在linux下pthread_cond_wait为什么还需要 mutex ?
在进入pthread_cond_wait之后,mutex会被解锁,出来以后会被重新加锁,我想主要是为了下面这样的用法
pthread_mutex_lock(mutex);
pthread_cond_wait(cond, mutex);
pthread_mutex_unlock(mutex);
我就是想知道linux下什么方法可以等同windows下的WaitForSingleObject( event )???
事件也只是一个(windows)内核对象而已,互斥变量、条件变量也是内核对象,就个人认为它们都是一致的,只是在表述上的不一样而已
在Linux下没有事件的概念,但从理解上事件和条件变量是一个概念,都是需要等待一个当前环境发生所希望的改变后触发,让程序可以继续进行下去
个人见解,仅供参考!