Brains


Algorithm、Machine Learning、Search、cloud computing
on Posix锁的认识, Linux

同步互斥 - 锁

这一篇文章主要讲述UNIX里面的锁机制,分为2类:一种主要用于多线程Thread之间的共享资源访问,另一种主要用于多进程Process之间的访问。参考资料《UNIX环境高级编程》,这是我自己的一些理解,以后还要继续补充。 线程Thread之间的锁 在多线程的环境中,涉及到共享变量的存取,就需要一定程度的同步,否则可能出现意想不到的情况。在UNIX中,用于多线程之间同步的锁分为以下几种: 互斥量(mutex) 读写锁(reader-writer lock) 条件变量 自旋锁 屏障(barrier) 最基本的就是互斥量与自旋锁,其他种类的锁都是对它们的一种封装。下面我依次描述这些类型的锁。 互斥量 互斥量应该很好理解,在访问共享资源前,对互斥量进行加锁,访问完之后进行解锁。对互斥量加锁之后,其他试图再次对该互斥量加锁的线程都会进行阻塞。注意:如果加锁的线程释放了此互斥量,那么所有等待该锁的线程都会被唤醒。 在POSIX中对互斥量进行了如下描述: #include <pthread.h> /* * 互斥量使用pthread_mutex_t数据类型表示的, * 在使用它之前,需要对其初始化。 */ int pthread_
Read More