社区
C++ 语言
帖子详情
请教 多个线程共同访问的问题
ostrich2fly
2007-10-11 09:28:02
请问以下,多个线程 同时读 一个对象的时候,哪种情况会出现问题?
1. 一个简单变量
2. 一个容器类型
3. 一个文件
4. 多个线程共同访问一个SQL SERVER 表
5. 多个线程使用 Connection, Command, Recordset, 或者Field对象的时候
我曾经开了若干个线程 同时访问 上述对象 持续了几分钟,没有出现问题 。
是我幸运 还是 对于读操作这些对象 可以安全的并发执行?
谢谢
...全文
217
10
打赏
收藏
请教 多个线程共同访问的问题
请问以下,多个线程 同时读 一个对象的时候,哪种情况会出现问题? 1. 一个简单变量 2. 一个容器类型 3. 一个文件 4. 多个线程共同访问一个SQL SERVER 表 5. 多个线程使用 Connection, Command, Recordset, 或者Field对象的时候 我曾经开了若干个线程 同时访问 上述对象 持续了几分钟,没有出现问题 。 是我幸运 还是 对于读操作这些对象 可以安全的并发执行? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Wolf0403
2007-10-15
打赏
举报
回复
不是任何时候都需要加锁的,这是个具体情况需要具体分析的问题。对于并发只读访问而言,对简单变量和STL容器是安全的。其它,取决于调用函数的实现(STL 也是实现保证了访问函数的线程安全)。
bing_huo
2007-10-15
打赏
举报
回复
推荐 <<multithreading applications in win32>> 去看一看好了
张琪Samuel
2007-10-15
打赏
举报
回复
4. 多个线程共同访问一个SQL SERVER 表
//我使用ADO 每个线程中开一个Connection 对象,连接串是一样的
这样应该没问题。
5. 多个线程使用 Connection, Command, Recordset, 或者Field对象的时候
看你使用的对象是不是thread safe,需要看文档确认。
//这个没有看明白,能稍微详细解释一下么 ?谢谢
有的类本质上就是为了多线程设计的,这样的类称为thread safe,可以多线程同时访问,资源的加锁和解锁都在那个类的内部完成,不需要程序员特意考虑了。不过一个类是不是thread safe是需要查文档确认的。
ostrich2fly
2007-10-11
打赏
举报
回复
4. 多个线程共同访问一个SQL SERVER 表
要看你用什么连接方式了,如果一个线程一个连接,肯定没问题。
//我使用ADO 每个线程中开一个Connection 对象,连接串是一样的
5. 多个线程使用 Connection, Command, Recordset, 或者Field对象的时候
看你使用的对象是不是thread safe,需要看文档确认。
//这个没有看明白,能稍微详细解释一下么 ?谢谢
张琪Samuel
2007-10-11
打赏
举报
回复
1. 一个简单变量
2. 一个容器类型
3. 一个文件
只读的话没有问题。
4. 多个线程共同访问一个SQL SERVER 表
要看你用什么连接方式了,如果一个线程一个连接,肯定没问题。
5. 多个线程使用 Connection, Command, Recordset, 或者Field对象的时候
看你使用的对象是不是thread safe,需要看文档确认。
scalene
2007-10-11
打赏
举报
回复
如果你能确定所有程序都只是读数据,而没有写操作的话,就都是安全的,因为没有“脏数据”的问题。
scalene
2007-10-11
打赏
举报
回复
如果你能确定所有程序都只是读数据,而没有任何写入的话,是安全的,因为不存在脏数据的问题。
ckt
2007-10-11
打赏
举报
回复
都需要设置锁来控制
飞哥
2007-10-11
打赏
举报
回复
各种锁,互斥锁,共享锁,自旋锁
千万别死锁
pridesnow
2007-10-11
打赏
举报
回复
为了保持程序的同步一致性,应该加 “锁”。
C#综合揭秘——细说多
线程
(上)
本文主要从
线程
的基础用法,CLR
线程
池当中工作者
线程
与I/O
线程
的开发,并行操作PLINQ等
多个
方面介绍多
线程
的开发。 其中委托的BeginInvoke方法以及回调函数最为常用。 而 I/O
线程
可能容易遭到大家的忽略,其实在开发多
线程
系统,更应该多留意I/O
线程
的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用UpdatePanel。其实合理使用I
多
线程
详解(掌握这篇就够了)
文章目录一、
线程
简介Process和Thread程序 进程
线程
核心概念二、
线程
创建(重点)1、继承Thread2、实现Runnable接口(推荐使用)3、 实现Callable接口4、龟兔赛跑5、小结继承Thread类实现Runnable接口静态代理Thread静态代理底层剖析动态代理newProxyInstance解析动态代理
多个
接口动态代理的秘密代理的作用总结lambda表达式三、
线程
状态(五大状态)状态概念
线程
方法停止
线程
(使用标志位)
线程
休眠(sleep)模拟网络延迟sleep获取当前时间
线程
礼让
[多
线程
进阶] 常见锁策略
锁策略之所以被叫做策略 , 是因为它并不是一个具体的锁 , 而是一系列供锁的实现者来参考的特性 , 对普通程序猿合理的使用锁也是有很大的帮助.
浅谈Java多
线程
机制
浅谈Java多
线程
机制 (文中重点信息将用红色字体凸显)
C#
线程
一、
线程
的定义 1. 1 进程、应用程序域与
线程
的关系 进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。进程之间是相对独立的,一个进程无法
访问
另一个进程的数据(除非利用分布式计算方式),一个进程运行的失败也不会影响其他进程的运行,Windows系统就是利用进程把工作划分为
多个
独立的区域的。进程可以理解为一个程序的基本边界。 应用程序域(AppD
C++ 语言
64,649
社区成员
250,477
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章