当前位置: 技术问答>linux和unix
线程同步读取变量可不可以不用互斥锁
来源: 互联网 发布时间:2016-08-14
本文导语: 有一个变量 int a; 在线程1中对a进行写操作,也就是加加减减。 在线程2中对a进行读操作,主要是记录在一个文件中,持续不断记录。 我如果不用互斥锁,而是仅仅把a定义成volatile int a; 可不可以实现线程2中数据...
有一个变量 int a;
在线程1中对a进行写操作,也就是加加减减。
在线程2中对a进行读操作,主要是记录在一个文件中,持续不断记录。
我如果不用互斥锁,而是仅仅把a定义成volatile int a;
可不可以实现线程2中数据的同步刷新啊?
在线程1中对a进行写操作,也就是加加减减。
在线程2中对a进行读操作,主要是记录在一个文件中,持续不断记录。
我如果不用互斥锁,而是仅仅把a定义成volatile int a;
可不可以实现线程2中数据的同步刷新啊?
|
看具体的业务逻辑是怎么样的吧,如果读出来的数据仅仅是展示一下,而没有任何逻辑依赖于你读出来的数据的话就可以不用加锁了。
|
你这种情况最好用一个互斥锁,读写之前上锁,读写完释放锁;如果读的次数比写的次数多很多的话,就用读写锁。
|
看数据的重要程度了。
不是很重要的话 int数据不用锁也没问题,出错的几率非常低的。
不是很重要的话 int数据不用锁也没问题,出错的几率非常低的。