技术小站8

网站首页 产经 > 正文

python 多线程通信(线程通信)

2022-10-30 09:50:43 产经 来源:
导读 大家好,小豆豆来为大家解答以上的问题。python 多线程通信,线程通信这个很多人还不知道,现在让我们一起来看看吧!1、多线程通信的方法主

大家好,小豆豆来为大家解答以上的问题。python 多线程通信,线程通信这个很多人还不知道,现在让我们一起来看看吧!

1、多线程通信的方法主要有以下三种:1.全局变量进程中的线程间内存共享,这是比较常用的通信方式和交互方式。

2、注:定义全局变量时最好使用volatile来定义,以防编译器对此变量进行优化。

3、2.Message消息机制常用的Message通信的接口主要有两个:PostMessage和PostThreadMessage,PostMessage为线程向主窗口发送消息。

4、而PostThreadMessage是任意两个线程之间的通信接口。

5、2.1.PostMessage()函数原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);参数:hWnd:其窗口程序接收消息的窗口的句柄。

6、可取有特定含义的两个值:HWND.BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口。

7、消息不被寄送到子窗口。

8、NULL:此函数的操作和调用参数dwThread设置为当前线程的标识符PostThreadMessage函数一样。

9、Msg:指定被寄送的消息。

10、wParam:指定附加的消息特定的信息。

11、IParam:指定附加的消息特定的信息。

12、返回值:如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。

13、MS还提供了SendMessage方法进行消息间通讯,SendMessage(),他和PostMessage的区别是:SendMessage是同步的,而PostMessage是异步的。

14、SendMessage必须等发送的消息执行之后,才返回。

15、2.2.PostThreadMessage()PostThreadMessage方法可以将消息发送到指定线程。

16、函数原型:BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam, LPARAM lParam);参数除了ThreadId之外,基本和PostMessage相同。

17、目标线程通过GetMessage()方法来接受消息。

18、注:使用这个方法时,目标线程必须已经有自己的消息队列。

19、否则会返回ERROR_INVALID_THREAD_ID错误。

20、可以用PeekMessage()给线程创建消息队列。

21、3.CEvent对象CEvent为MFC中的一个对象,可以通过对CEvent的触发状态进行改变,从而实现线程间的通信和同步。

本文到此分享完毕,希望对大家有所帮助。


版权说明: 本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。


标签:




热点推荐
热评文章
随机文章