目录
1.线程同步
2.互斥锁/互斥量
3.死锁
4.读写锁
1.线程同步
2.互斥锁/互斥量
线程A锁定互斥量M后,线程B也想锁定互斥量M,此时B会被阻塞,那么B要阻塞多久呢?或者说A解锁互斥量M之后B怎样知道呢?
B线程可以一直循环进行判断,但是这种方法中B线程占用了宝贵的处理时间去反复检测;
B线程还可以先休眠一会儿,再去检查,但是这样的话,休眠多久合适呢?不好说;
还有一种比较好的方法是使用条件变量。当某个线程已经确定条件得到满足,它就可以通知一个或者多个正在条件变量上进行等待的线程,唤醒它们并让它们继续处理。
3.死锁
4.读写锁