首页 > 编程语言 > 详细

多线程编程

时间:2019-10-12 12:09:21      阅读:76      评论:0      收藏:0      [点我收藏+]

线程局部变量

[参考1](https://blog.csdn.net/cywosp/article/details/26469435)
[参考2](https://blog.csdn.net/vevenlcf/article/details/77882985)

知识点

1. 概念:竞争条件、死锁条件等
2. 锁、原子操作
3. violate,编译器优化等
4. 无锁队列及常见问题

条件变量

    bool condi = false; // global val
    mtx.lock(); // 1
    while( ! condi ){ // 2
        mtx.unlock(); // 3
        // 4 线程挂起等待,指导条件满足通知 
        // 5 重新获取锁
    }

    // 6 操作临界区
    mtx.unlock() // 7

说明:
1. 1判断条件状态是否满足和访问临界区必须加锁
2. 2~4 条件不满足时,当前线程释放所,进入等待状态,阻塞在4
3. 使用while不使用if的原因:线程可能在不满足条件情况下被唤醒;如,多个线程被唤醒时,其中一个拿到锁改了条件状态。

多线程编程

原文:https://www.cnblogs.com/holidays/p/concurrency.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!