我正在阅读关于const
和C ++ 11中的线程安全性,这里是一个相关的Stack Overflow question,这里也是Herb Sutter的video。经常提到“同步”一词。但“同步”究竟意味着什么呢?
例如,以下两行来自Herb的视频
“在没有同步的情况下从多个线程中的同一对象进行复制”(在13:40)
“...... const对象是完全线程安全的(真正不可变或内部同步)”(在15:03)
答案 0 :(得分:4)
同步意味着在线程和进程之间共享资源,而不会导致争用条件和死锁。
第一个语句中没有同步意味着它不会锁定资源并在完成时将其解锁。
在第二个陈述中,他的意思是说它是一个const对象,它不能被修改,因此完全不可变,不需要同步。
使用Mutex和Semaphore进行的线程同步技术研究将帮助您更好地理解为什么需要它以及如何完成它。