因为无消息队列的程序不处理消息,所以它们将不会当住系统

本文深入探讨了OS/2的PresentationManager如何通过消息队列管理线程和窗口,解释了消息队列线程与无消息队列线程的作用及分工,并介绍了1/10秒规则,帮助开发者避免程序阻塞系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在OS/2的Presentation Manager中,每个线程可以建立一个消息队列,也可以不建立。如果希望从线程建立窗口,那么一个PM线程必须建立消息队列。否则,如果只是进行许多的数据处理或者图形输出,那么线程不需要建立消息队列。因为无消息队列的程序不处理消息,所以它们将不会当住系统。唯一的限制是一个无消息队列线程无法向一个消息队列线程中的窗口发送消息,或者呼叫任何发送消息的函数(不过,它们可以将消息递送给消息队列线程)。

这样,PM程序写作者学会了如何将它们的程序分隔为一个消息队列线程(在其中建立所有的窗口并处理传送给窗口的消息)和一个或者多个无消息队列线程,在其中执行冗长的背景工作。PM程序写作者还了解到「1/10秒规则」,大体上,程序写作者被告知,一个消息队列线程处理任何消息都不应该超过1/10秒,任何花费更长时间的事情都应该在另一个线程中完成。如果所有的程序写作者都遵循这一规则,那么将没有PM程序会将系统当住超过1/10秒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值