社区
C++ Builder
帖子详情
关于线程的协调!
nuaalj
2003-05-07 09:16:36
当一个线程在对某个变量读/写的时候,另外一个线程对该变量进行写/读(即2个线程,一个读一个写),会造成什么后果?
...全文
88
6
打赏
收藏
关于线程的协调!
当一个线程在对某个变量读/写的时候,另外一个线程对该变量进行写/读(即2个线程,一个读一个写),会造成什么后果?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nuaalj
2003-05-07
打赏
举报
回复
有一个监测程序,采集数据(数据比较多)的同时显示数据,有无必要建立2个线程(一个采集一个显示),还是用一个线程,先采集后显示。如果用2个线程,线程间必须协调,采集线程完了通知显示线程工作。这2种方法有什么本质区别,哪种好呢?
yesry
2003-05-07
打赏
举报
回复
复杂化了。
如果只读写简单的一段内存,可是视为原子操作。
例如
int i;
A()//线程
{
if(i==0)
{
//do something.
i=1;
}
}
B()//线程
{
if(i==1)
{
//do something.
i=0;
}
}
hitbabiq
2003-05-07
打赏
举报
回复
可能导致死锁或者程序执行不正确,因此需要控制,保证同一时刻只能有一个线程对其操作
starstargao
2003-05-07
打赏
举报
回复
cbc 可以很好的实现锁TCriticalSection有一个里面的acquire和release可以保证在一段时间内只有一个线程访问那一段地址
用CreateSemaphore()、CreateEvent()、WaitForSingleObject()、ReleaseSemaphore()、SetEvent()等函数可以实现事件,信号灯来协调线程间的同步
starstargao
2003-05-07
打赏
举报
回复
如果不加锁控制,有可能就会出现死锁,你的程序就隔掉了
解决的方法
1。发信号灯,告诉另外一个线程,我一进完了,你来操作吧
2。时钟,到了那个时间,另外一个线程就进行处理,当然在到了时间以后,你还没有处理完,就会出现上面的请况
littlefisher
2003-05-07
打赏
举报
回复
关注,up!
JDK之8后: 协程? 虚拟
线程
!!!
每个
线程
都提供一个堆栈来存储局部变量和
协调
方法调用,以及出错时的上下文:异常是由同一
线程
中的方法抛出和捕获的,因此开发人员可以使用
线程
的堆栈跟踪来找出发生了什么。
线程
也是工具的核心概念:调试器逐步执行...
JAVA
线程
同步锁和
线程
间
协调
操作
java
线程
同步锁和
线程
间
协调
操作
(一)
线程
安全问题-
线程
锁(synchronized的使用)
互斥性:同一时间只能有一个对象持有
线程
锁,通过这种特性实现多
线程
的
协调
机制。同一时间只有一个
线程
对需要同步的代码块进行访问,也成为原子性 可见性:必须确保在锁释放之前,其对于共享变量的修改对下一个获得...
3-04多
线程
相关
多
线程
是指一个进程(执行中的程序)同时运行多个
线程
(进程中负责程序执行的执行单元),多
线程
可以协作完成进程工作,其目的是更好的利用 CPU 资源 Java
线程
具有五中基本状态 新建状态(New):当
线程
对象对创建...
什么是
线程
安全?如何保证
线程
安全?
当多个
线程
访问一个对象时,如果不用考虑这些
线程
在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的
协调
操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是
线程
安全...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章