社区
进程/线程/DLL
帖子详情
一个线程的小问题
aunkbk
2008-05-07 10:30:16
请问大家:
别人都说在工作线程中不能直接使用窗口指针,而我总是在这样用,却从没出过问题,不知道为什么?
请教大家,如果出问题,会在什么情况下出问题呢?先谢谢啦!
...全文
77
5
打赏
收藏
一个线程的小问题
请问大家: 别人都说在工作线程中不能直接使用窗口指针,而我总是在这样用,却从没出过问题,不知道为什么? 请教大家,如果出问题,会在什么情况下出问题呢?先谢谢啦!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gavinzhu
2008-05-07
打赏
举报
回复
说白了 你能 避免并发操作某个对象 就没问题
最简单的 读写串口 用读写两个线程进行做
ouyh12345
2008-05-07
打赏
举报
回复
所有的mfc的指针都是非线程安全的
多线程环境下,用句柄
vcPlayer
2008-05-07
打赏
举报
回复
[Quote=引用 1 楼 cnzdgs 的回复:]
这样说的人很多,但不是所有人都这样说。只要你清楚什么样的情况会出问题,并且避免发生问题就可以了。
其实不只是窗口指针,所有指针都有可能出问题,关键是看会不会发生多个线程同时访问相同的数据的情况,(所有线程对数据都只读除外)。例如:窗口类中定义了一个变量,创建线程时把窗口类指针传给线程,如果主线程随时有可能更改这个变量,而工作线程也要修改这个变量,假设主线程修改这个变量的中途,工作线程对这个变量做…
[/Quote]
核心在于线程同步,重点在于窗口界面要接受用户很多操作,而这些操作又是不可预期的(不像我们工作线程要干嘛都很清楚),有些操作很可能会导致一些窗口指针的“失效”从而导致程序崩溃……严重情况发生。不过在常规应用下一般不会发生这种情况。
cnzdgs
2008-05-07
打赏
举报
回复
这样说的人很多,但不是所有人都这样说。只要你清楚什么样的情况会出问题,并且避免发生问题就可以了。
其实不只是窗口指针,所有指针都有可能出问题,关键是看会不会发生多个线程同时访问相同的数据的情况,(所有线程对数据都只读除外)。例如:窗口类中定义了一个变量,创建线程时把窗口类指针传给线程,如果主线程随时有可能更改这个变量,而工作线程也要修改这个变量,假设主线程修改这个变量的中途,工作线程对这个变量做了修改,这时就会产生冲突,导致变量的数据不正确。当可能发生这种情况时,应采取线程同步手段,防止多个线程同时访问数据。
对于传递窗口类指针,通常的操作,例如更改控件文字,更改控件状态等,这些都是通过SendMessage最终由窗口所属线程来处理的,所以不会发生冲突。常见的冲突是创建、销毁窗口或控件,更新视图,释放指针等。
danscort2000
2008-05-07
打赏
举报
回复
那说明你没吃透消息传递规则
等你编写大型代码,遇到莫名其妙的挂起问题时
你会明白不用工作线程直接处理界面有多么重要
下载 多
线程
编程技术开发资料 高清完整PDF版
多
线程
编程技术开发资料.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权
问题
,请联系删除!
Java.Concurrency.in.Practice.pdf
Java.Concurrency.in.Practice.pdf
java
线程
安全
问题
当我们使用多个
线程
访问同一资源(可以是同
一个
变量、同
一个
文件、同一条记录等)的时候,若多个
线程
只有读操作,那么不会发生
线程
安全
问题
,但是如果多个
线程
中对资源有读和写的操作,就容易出现
线程
安全
问题
。 1 同
一个
资源
问题
1、局部变量不能共享 public class SaleTicketDemo1 { public static void main(String[] args) { Window w1 = new Window(); Window w2 = ne...
JAVA多
线程
之两个
线程
同时写
一个
文件
1.多
线程
线程
是程序执行流的最小单元。是进程中的
一个
实体,是被系统独立调度和分派的基本单位,
线程
自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属
一个
进程的其它
线程
共享进程所拥有的全部资源。
一个
线程
可以创建和撤消另
一个
线程
,同一进程中的多个
线程
之间可以并发执行。由于
线程
之间的相互制约,致使
线程
在运行中呈现出间断性。
线程
也有就绪、阻塞和运行三种基本状态。就绪状态是指
线程
具备
java
一个
线程
占多少内存_
一个
jvm
线程
占用多少操作系统内存
找到关键点在看到12452个等待在CachedBnsClient.run的业务的一瞬间笔者就意识到,肯定是这边的
线程
导致对外内存泄露了。下面就是根据
线程
大小计算其泄露内存量是不是确实能够引起OOM了。发现内存计算对不上由于我们这边设置的Xss是512K,即
一个
线程
栈大小是512K,而由于
线程
共享其它MM单元(
线程
本地内存是是现在
线程
栈上的),所以实际
线程
堆外内存占用数量也是512K。进行如下计算:...
进程/线程/DLL
15,466
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章