>일반적인 문제 >스레드 간 통신 방법은 무엇입니까?

스레드 간 통신 방법은 무엇입니까?

不言
不言원래의
2019-04-08 13:59:1151666검색

스레드 간 통신 방법은 무엇입니까?

스레드 간 통신 방법은 다음과 같습니다. 메시지 큐는 가장 일반적으로 사용되는 큐로, 사용자 정의 데이터 구조를 통해 복잡하고 간단한 데이터 구조를 전송할 수 있습니다.
Windows 프로그래밍에서 각 스레드는 자체 메시지 대기열을 가질 수 있습니다(UI 스레드에는 기본적으로 자체 메시지 대기열과 메시지 루프가 있으며 작업자 스레드는 메시지 루프를 수동으로 구현해야 함). 스레드 간 통신 sendMessage, postMessage를 사용할 수 있습니다.

메시지 정의 #define WM_THREAD_SENDMSG=WM_USER+20;

메시지 함수 선언 추가 afx_msg int OnTSendmsg()

메시지 매핑 추가 ON_MESSAGE(WM_THREAD_SEND MSG ,OnTSM)

OnTSM() 구현 함수 추가

스레드 함수에 PostMessage 메시지 Post 함수 추가

2. 전역 변수 # 🎜🎜#

프로세스 내 스레드 간 메모리 공유, 이는 일반적인 통신 방법이자 상호 작용 방법입니다.

참고: 컴파일러가 이 변수를 최적화하지 못하도록 전역 변수를 정의할 때 휘발성을 사용하는 것이 가장 좋습니다.

3 이벤트 CEvent 클래스를 사용하여 스레드 간 통신을 구현합니다.

Event 개체에는 신호를 받은 상태와 신호를 받지 않은 상태의 두 가지 상태가 있습니다. 적절한 시간에 이벤트에 대한 작업을 수행합니다.

1) CEvent 클래스의 객체 생성: CEvent threadStart; 기본적으로 비통신 상태입니다.

2) threadStart.SetEvent(); 통신 상태

3) WaitForSingleObject()를 호출하여 CEvent 개체를 모니터링합니다.

위 내용은 스레드 간 통신 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.