杨泽彬的神秘商店

博客园 首页 新随笔 联系 订阅 管理

1.线程安全是什么?
在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。
2.什么情况是线程不安全?

3.最基本的保证线程安全的方式?

  • 锁:加锁的目的就是保证共享资源在任意时间里,只有一个线程访问,这样就可以避免多线程导致共享数据错乱的问题。

4.锁是如何实现原子操作的?
依赖硬件。三条指令一次实现。

5.互斥锁的使用:
参考:[]:https://blog.csdn.net/yuanyuan320/article/details/110225815
大家共用一把锁,每次使用前先上锁,如果锁被上过了,就不能用。

6.读写锁在pthread 中的使用以及c++实现:
https://blog.csdn.net/weixin_45425093/article/details/121158727

7.互斥锁与自旋锁的区别
互斥锁被占用时,线程进入会引起线程切换,适用于锁比较多,线程切换代价小的情况
自旋锁被占用时,线程进入不会引起线程切换,而是阻塞等待,适用于锁比较少,线程切换代价大的情况

8.条件变量

互斥锁的使用:

posted on 2022-08-29 16:28  快乐过了阈值  阅读(723)  评论(0)    收藏  举报