社区
C++ 语言
帖子详情
请教 多个线程共同访问的问题
ostrich2fly
2007-10-11 09:28:02
请问以下,多个线程 同时读 一个对象的时候,哪种情况会出现问题?
1. 一个简单变量
2. 一个容器类型
3. 一个文件
4. 多个线程共同访问一个SQL SERVER 表
5. 多个线程使用 Connection, Command, Recordset, 或者Field对象的时候
我曾经开了若干个线程 同时访问 上述对象 持续了几分钟,没有出现问题 。
是我幸运 还是 对于读操作这些对象 可以安全的并发执行?
谢谢
...全文
222
10
打赏
收藏
请教 多个线程共同访问的问题
请问以下,多个线程 同时读 一个对象的时候,哪种情况会出现问题? 1. 一个简单变量 2. 一个容器类型 3. 一个文件 4. 多个线程共同访问一个SQL SERVER 表 5. 多个线程使用 Connection, Command, Recordset, 或者Field对象的时候 我曾经开了若干个线程 同时访问 上述对象 持续了几分钟,没有出现问题 。 是我幸运 还是 对于读操作这些对象 可以安全的并发执行? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
为了保持程序的同步一致性,应该加 “锁”。
ODBC_数据库链接函数库
撤销当前事务中的所有更改,如果在没有自动提交的情况下执行了
多个
SQL语句,`odbc_rollback`可以回滚这些更改,恢复数据库到事务开始前的状态。 #### 20. **odbc_setoption** 用于调整ODBC的配置选项,如超时时间、...
C#综合揭秘——细说多
线程
(上)
本文主要从
线程
的基础用法,CLR
线程
池当中工作者
线程
与I/O
线程
的开发,并行操作PLINQ等
多个
方面介绍多
线程
的开发。 其中委托的BeginInvoke方法以及回调函数最为常用。 而 I/O
线程
可能容易遭到大家的忽略,其实在...
多
线程
详解(掌握这篇就够了)
实现Callable接口4、龟兔赛跑5、小结继承Thread类实现Runnable接口静态代理Thread静态代理底层剖析动态代理newProxyInstance解析动态代理
多个
接口动态代理的秘密代理的作用总结lambda表达式三、
线程
状态(五大状态)...
C# 中多
线程
间的同步
一、引入先给出一个Num类的...}假设现在要求输出小于 odd 的所有奇数,输出小于 even 的所有偶数,不考虑多
线程
时可以写出如下的代码:(为了演示多
线程
时
线程
间的争用,先把值赋给了 num,实际上这个赋值操作毫无...
[多
线程
进阶] 常见锁策略
锁策略之所以被叫做策略 , 是因为它并不是一个具体的锁 , 而是一系列供锁的实现者来参考的特性 , 对普通程序猿合理的使用锁也是有很大的帮助.
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章