Open paulQuei opened 4 years ago
感谢博主,讲的很清晰
谢谢,讲解的很细致。
sort(execution::par, copy2.begin(),copy2.end()); // ⑥ 并行排序没有并行执行 我在mac上用的gcc 10编译的,运行结果如下, Sequenced sort consuming 9151ms. Parallel sort consuming 9171ms. Parallel unsequenced sort consuming 9190ms.
大佬,好文。可以转载么?会标明出处
收益颇丰
感谢博主
Mark!点赞优秀!
博主讲得非常清晰和详细,系统串联起来了这些知识点,回顾下来也收益匪浅,感谢!
bool transferMoney(Account* accountA, Account* accountB, double amount) {
lock_guard guardA(*accountA->getLock()); // ①
lock_guard guardB(*accountB->getLock());
lock_guard后面要加上<mutex>
Thanks a lot.
谢谢博主,写的真好,希望可以成为博主一样优秀的人!
Bank totalMoney的输出有时候是200,有时候不是。但不管怎样,即便这一次不是,下一次又是了。 原因感觉是在totalMoney的时候,另一个线程可能在跑transferMoney,跑到accountA->changeMoney的时候,accountB的金额没有变化,所以总金额会有出入,但当accountB->changeMoney执行之后,totalMoney又对了。 但不知道要怎么解决这个问题,求教 :)
大佬,已转载到 https://ouyangpeng.blog.csdn.net/article/details/123846041 ,标明出处! 如果不让转载,我删除!
非常清晰,厉害👍
谢谢!有收获。
请问关于并发编程这块儿,大佬看的什么相关资料呀
使用conditional_variable的时候由于在读的时候可能发生写的情况,会导致中间数据不一致,但是如果在读写过程中加锁,又没有使用conditional_variable的意义,是不是没有什么办法使用了conditional_variable又不影响性能?
Bank totalMoney的输出有时候是200,有时候不是。但不管怎样,即便这一次不是,下一次又是了。关于这一点,请读者自行思考一下为什么,以及如何改进。
这里是因为transferMoney函数没有加锁,存+取不是原子的,可能在中间get了,但是加了锁又会死锁,怎么改进呢
感谢博主! 博主高屋建瓴地普及了并发编程入门的所需要知道的相关知识、API需求的由来、知识之间的联系。并通过代码例子以及简洁和准确的注释来展示从知识->API->代码这一实现过程。并且在知识的连接处,明确地点出新手的困惑点,并且留下相关的问题,帮助深入思考。毫不夸张的说,是我读到的C++并发编程中最好一篇科普文章
感谢博主
讲的太好了,感谢博主,解决了很多疑惑。C++并发的资料查了很多,终于搞懂了。
喜欢这样的文章。nice~
https://paul.pub/cpp-concurrency/
C++ 并发编程(从C++11到C++17), C++, Thread,Concurrency,Synchronize,Lock,Mutex, 自C++11标准以来,C++语言开始支持多线程模型。借助多线程模型,我们可以开发出更好的并发系统。本文以C++语言为例,讲解如何进行并发编程。并尽可能涉及C++11,C++14以及C++17中的主要内容。