为什么 一个线程读数据,一个线程写数据,要加锁?
为什么 一个线程读数据,一个线程写数据,要加锁?
这种奇怪的言论,不知道为什么会出现?
随手举个例子
全局变量int g_val;
线程1
{
printf("%d",g_val);
}
线程2
{
g_val++;
}
显然不需要 加锁啊。 多个线程修改数据,那么则需要加锁,如果只是一个读,一个写,加锁作甚?
问题2:
典型的读写者模型: 多个线程读,多个线程写。
http://blog.csdn.net/morewindows/article/details/7596034问中提到的这个模型
与上一篇《秒杀多线程第十篇 生产者消费者问题》的生产者消费者问题一样,读者写者也是一个非常著名的同步问题。读者写者问题描述非常简单,
有一个写者很多读者,多个读者可以同时读文件,但写者在写文件时不允许有读者在读文件,同样有读者在读文件时写者也不去能写文件。
问:为什么要如此规定。读的时候不能写,写怎么了?影响数据? 还是怎地?写的时候,不能读?读有如何。
这种规定的模型真不知道是如何提出来的。

这种奇怪的言论,不知道为什么会出现?
随手举个例子
全局变量int g_val;
线程1
{
printf("%d",g_val);
}
线程2
{
g_val++;
}
显然不需要 加锁啊。 多个线程修改数据,那么则需要加锁,如果只是一个读,一个写,加锁作甚?
问题2:
典型的读写者模型: 多个线程读,多个线程写。
http://blog.csdn.net/morewindows/article/details/7596034问中提到的这个模型
与上一篇《秒杀多线程第十篇 生产者消费者问题》的生产者消费者问题一样,读者写者也是一个非常著名的同步问题。读者写者问题描述非常简单,
有一个写者很多读者,多个读者可以同时读文件,但写者在写文件时不允许有读者在读文件,同样有读者在读文件时写者也不去能写文件。
问:为什么要如此规定。读的时候不能写,写怎么了?影响数据? 还是怎地?写的时候,不能读?读有如何。
这种规定的模型真不知道是如何提出来的。

...全文
相关推荐
c++线程加锁
代码中的临界区变量(cs)就可以看作是变量s的锁,当函数EnterCriticalSection返回时,当前线程就获得了这把锁,之后就是对变量的访问了。访问完成后,调用LeaveCriticalSection表示释放这把锁,允许其他线程继续使用它。
两个线程对socket 进行读和写,需要加锁吗
我给你用讲清楚👇。
java中ConcurrentHashMap的读操作为什么不需要加锁
ConcurrentHashMap完全允许多个读操作并发进行,读操作并不需要加锁。所以下面这篇文章主要给大家介绍了关于java中ConcurrentHashMap的读操作为什么不需要加锁的相关资料,需要的朋友可以参考下
C++开发:为什么多线程读写shared_ptr要加锁的详细介绍
本篇文章介绍了,在C++中为什么多线程读写shared_ptr要加锁的详细说明。需要的朋友参考下
Python多线程编程之多线程加锁操作示例
主要介绍了Python多线程编程之多线程加锁操作,涉及Python线程创建、加锁、释放锁等相关操作技巧,需要的朋友可以参考下


