raz*_*zeh 10 c++ multithreading
atomic::is_lock_free返回true 时是否有正确且无死锁的C++程序,但未定义或atomic::is_lock_free返回false 时可能包含死锁?
鉴于原子中的任何锁定都将在库的控制下被获取和释放,我无法想象如何解决问题,但是通过多线程和锁定通常有一种方式:-)
为了在程序中出现死锁,您需要同时持有多个锁。根据 C++11 标准,访问或修改std::atomic<T>变量可能会获取锁,但它会在函数调用完成后立即释放锁,并且在持有锁时不会调用任何用户定义的函数,因此不会出现这种情况两个(或多个)互斥锁同时被锁定;因此,内部可锁定对象不可能出现死锁std::atomic。
| 归档时间: |
|
| 查看次数: |
582 次 |
| 最近记录: |