社区
进程/线程/DLL
帖子详情
线程中循环的问题
icper
2005-11-09 12:00:18
我有一个全局bool变量b
程序运行时开一个线程,线程中有个循环
while(!b)
{}
结果当b在别的流程中置为true时
线程有时候仍在那个while中出不来
release下必出现这个情况
debug的则没有这个问题
后来我在while循环中加了sleep(0)之后
解决了release的问题
我就想知道为什么会这样??
以前这样类似的用过,却没有见过这样的....
...全文
179
7
打赏
收藏
线程中循环的问题
我有一个全局bool变量b 程序运行时开一个线程,线程中有个循环 while(!b) {} 结果当b在别的流程中置为true时 线程有时候仍在那个while中出不来 release下必出现这个情况 debug的则没有这个问题 后来我在while循环中加了sleep(0)之后 解决了release的问题 我就想知道为什么会这样?? 以前这样类似的用过,却没有见过这样的....
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bluekite
2005-11-10
打赏
举报
回复
請看以下貼子中我的回答,個案相同:
线程疑问
http://community.csdn.net/Expert/topic/4382/4382522.xml?temp=.5482141
Featured
2005-11-10
打赏
举报
回复
是的。对变量的取值不是原子操作,非常危险。
lianglp
2005-11-10
打赏
举报
回复
如用变量控制,定义变量应:volatile bool b;
建议用1楼的建议。
gohappy_1999
2005-11-10
打赏
举报
回复
我觉得应该是楼主的误判,单就楼主的那段代码,在别的线程中置b = TRUE;假如这两个线程的优先级是一样的话,完全可以控制循环退出,只是一个时间的问题(即使循环所处的线程的优先级高于改变B的值的线程我觉得也应该是可以退出的).
你多等一会,线程应该是退出了的。
czg516
2005-11-10
打赏
举报
回复
好奇怪
icper
2005-11-10
打赏
举报
回复
多等一会也不行,除非退出程序
Featured:我知道,不过我的线程中只是判断该变量,
即使不同步也没关系
其实类似的问题还有一个
在窗口上一个按钮,点击后开始循环干活,在循环过程中开一个
线程,线程在做自己的活,然后在前面主循环工作到某阶段要弹出
对话框(afxmessagebox)时,可是就弹不出来,主循环也停在那了。
但是只要在线程的循环中加上sleep(0)就可以了。。。。。
这个对话框和线程是没有关系的。
Kudeet
2005-11-09
打赏
举报
回复
一般不建议用BOOL量控制循环
HANDLE g_hEvent;
int WINAPI WinMain(...)
{
//Create the manual-reset, nonsignaled event.
g_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
//Spawn 1 new threads.
HANDLE hThread;
DWORD dwThreadID;
hThread = _beginthreadex(NULL, 0, WordCount, NULL, 0, &dwThreadID);
//Allow thread to access the memory.
SetEvent(g_hEvent); //Set后WaitForSingleObject才返回
...
}
DWORD WINAPI WordCount(PVOID pvParam)
{
WaitForSingleObject(g_hEvent, INFINITE);
...
return(0);
}
Android应用程序消息处理机制
也就是说,在Android应用程序主
线程
中
,所有函数都是在一个消息
循环
中
执行的。Android应用程序其它
线程
,也可以像主
线程
一样,拥有消息
循环
。Android应用程序主
线程
是一个特殊的
线程
,因为它同时也是UI
线程
以及触摸...
Android应用程序输入事件处理机制
在Android应用程序
中
,有一类...这个PPT讲Android应用程序输入事件的分发和处理过程,主要涉及到输入管理InputManager、输入事件监控
线程
InputReader、输入事件分发
线程
InputDispatcher,以及应用程序主
线程
消息
循环
。
python
线程
进程、异步IO
多
线程
是指从软件或者硬件上实现多个
线程
并发执行的技术。具有多
线程
能力的计算机因有硬件支持而能够在同一时间 执行多于一个
线程
,进而提升整体处理性能。 该章节主要包括
线程
进程的概念,基于python的
线程
进程实现...
python多
线程
中
无限
循环
线程
退出
问题
python多
线程
中
无限
循环
线程
退出
问题
import threading import time """
问题
:在创建一个包含无限
循环
的子
线程
的时候 无法控制子
线程
的退出 第一次在写树莓派应用的时候就出现了这个
问题
这次在写网络编程大作业...
python多
线程
处理
循环
_在python
中
使用
线程
运行无限
循环
现在关于你的
问题
:我该如何运行两个无限
循环
?您可以创建两个不同的
线程
来为您运行这些无限
循环
。第一个
线程
将执行您的task1,第二个
线程
将执行task2。另外,一旦我开始执行一个
线程
,当第一个
线程
连续/无限运行时...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章