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) 消息在线程同步中的问题。
先说说消息的一些基本问题&