多线程
文章平均质量分 93
柴郡猫编程乐园
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
构造C++对象时如何控制执行顺序3
第三篇讨论解决线程启动时的顺序要求的方案。在C++标准库中,std::thread线程对象没有提供专门的启动函数(不同于Java线程对象,它提供了启动线程的start()方法),在创建线程对象时,会同时启动线程。因此如果线程对象作为数据成员存在于一个类中,它的线程函数访问了数据成员,或者线程函数是所在类的成员函数,那么线程对象的初始化顺序,就得要注意了,如果使用不当,就容易产生不易察觉的错误。原创 2025-08-16 07:19:19 · 789 阅读 · 0 评论 -
C++11实现一个cyclic barrier
举个生活中的例子,假如有5个好基友,商量好周末一块去爬山,他们约定周日早上8点在山脚下集合,不见不散。周日那天,如果一个先到了,发现没有其他人到达,就只好等着,第二个人到了之后,发现还没有到期,也只能等待,直到第5个人到达后,所有5个人全部到齐了,就一起出发开始爬山。如果我们在脑海中想象有一个栅栏(barrier)立在山门口,如果它不拿走,人们是无法越过去的,它被拿走的条件是,5个基友全部到达。如果这5个基友哪怕仅有一个还没有到达,它也不会被放倒,基友就被拦在外面,只有当5个基友全部到达之后,这个栅栏才会陡原创 2021-12-15 21:26:26 · 1569 阅读 · 0 评论 -
C++11实现一个countdown latch
在日常生活中,我们经常遇到这样场景,当要做一件事情时,要先等待几个固定数目的其它事情做完了,才能进行,如果别的事情没有就绪,只能等待。比如,一个工厂有存放原材料的仓库,仓库的大门共有三把锁,分别由仓管员、主管部门经理和值班经理保管,当一个(或几个)领料员上班后去仓库领材料,发现仓库大门锁着,那么他就只能等着这三个掌管钥匙的人员来开门:如果主管部门经理来上班了,就把他负责的那把锁打开,然后去工作了,此时领料员只能继续等待,当值班经理来上班之后,把他负责的那把锁打开,然后也去工作了,只有最后仓管员上班之后打开最原创 2021-12-12 21:15:15 · 3461 阅读 · 0 评论
分享