Delphi Thread 多线程编程(6)

本文详细探讨了Delphi多线程编程中遇到的问题,包括回调函数引起的死锁、资源竞争、线程锁不当、未加线程保护导致的异常、消息同步问题以及异常处理。建议尽量使用PostMessage,注意线程同步,减少公共资源操作时间以提高效率,并强调深入理解操作系统原理对软件开发的重要性。
摘要由CSDN通过智能技术生成

                                  3. 线程中常见的问题。  

    1) 回调函数引起的死锁。     

 A回调线程B中的函数,而在线程B中,再去对线程A进行操作(比如删除A)。发生的现象:程序死掉。 


     2) 使用同一资源未加保护引起问题。     

   A和B同时去对窗体上进行绘图操作,界面可能花掉,也可能黑掉。

出现的现象:界面不再刷新,变成黑色。(最好不要在子线程中去更新界面UI,可以使用消息来更新) 


  3) 线程锁使用不当造成死锁。   

线程A利用线程锁锁住资源A后,再去试图访问资源B,线程B利用线程锁锁住资源B后试图去访问资源A。这样就发生了线程互锁。

程序结果:线程死掉。 


  4) 未加线程保护产生异常。    

  线程A获取到了对象X(步骤1)的引用后被挂起(步骤2),而接下来线程B却删除了X(步骤3),线程A再次唤醒后访问对象X出错(步骤4)。这个问题是多线程中最容易被忽略的地方,也是异常最可能发生的情况。

程序结果:线程异常。


  5) 消息在线程同步中的问题。

先说说消息的一些基本问题&

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值