当前位置: 技术问答>linux和unix
多线程共享变量只是读取会不会冲突?
来源: 互联网 发布时间:2016-03-30
本文导语: 多个线程共享一个变量,如果其中只有一个线程写变量,其他的线程只是读取,不写入,不使用临界区保护的话,会不会冲突? | 信号量能保证不冲突么?怎么保证? 我印象里不阻塞的话很...
多个线程共享一个变量,如果其中只有一个线程写变量,其他的线程只是读取,不写入,不使用临界区保护的话,会不会冲突?
|
信号量能保证不冲突么?怎么保证?
我印象里不阻塞的话很难保证正确访问。
我印象里不阻塞的话很难保证正确访问。
|
可以使用读写锁。当需要写锁时,所有读不能加锁,被阻塞;已有读锁释放后,写入。当读锁时,都可以读。
|
|
|
会的,假如你不是很关心数据变化就没关系
|
正解
|
|
但是你要保证你的读和写是原子操作,这样就可以了,比如对整数,字符,字节操作,就没有问题。如果给一个整数赋值,取一个整数值,这些都是原子操作。
如果你是很多数据的,就需要保护了。
如果你是很多数据的,就需要保护了。