
multithreading
文章平均质量分 64
介绍C++中的multithreading
weixin_43232163
这个作者很懒,什么都没留下…
展开
-
【C++】【multithreading】chapter3 Sharing data between threads
两个线程同时读的时候,不会任何问题,问题都出现在写上。eg:如果一个线程在写,另一个线程在读。因为写是需要步骤的,假设,写需要四步,1),2),3),4),如果写线程刚好处于第二步的时候,这时,读线程过来读数据了,这时就有可能会产生读出来的数据不对的情况。即便是中间出现了异常,stack unwinding 也会保证destructor一定会运行,从而保证 unlock 一定会运行。当函数退出的时候,会自动调用 lock_guard 的destructor,在destructor中会调用unlock。原创 2023-04-19 13:27:33 · 152 阅读 · 0 评论 -
【C++】【multithreading】chapter2 managing threads
在线程对象创建之后,调用 join 之前,如果程序出现了 exception ,那么程序就会被终止,join 就无法正常运行,所以要保证,join 在任何情况下都会被顺序执行到,即使出现了 exception 也要保证 join 可以正常运行。介绍了 hardware_concurrency(), 这个函数会返回 CPU 物理意义上支持的最大的线程数。介绍了下线程 id, 如果你想指定某个线程去运行某个程序,就可以用线程 id 来指定。直接在创建线程的时候,在后面加上变量即可。原创 2023-04-15 16:28:08 · 98 阅读 · 0 评论 -
【C++】【multithreading】chapter1 hello, world of concurrency in C++
如果不添加 t.join() 程序会挂,程序会报错。我只知道 join 后,主线程会等待子线程结束后,再结束。尚不是很清楚会挂的具体原因。本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。原创 2023-04-15 11:09:31 · 75 阅读 · 0 评论