【已解决】C语言实现多线程的同步与异步

说真的写了这篇博文时,才知道c语言本身不支持多线程,而是一些windowsapi让c语言拥有多线程的能力,那下面内容就以打开对话框为例,展现如何实现多线程的同步与异步。

文章目录

    • 问题起源
    • c语言多线程同步方案
    • c语言多线程异步方案
    • 总结

问题起源

想要实现c语言打开多个对话框的多线程同步与异步

c语言多线程同步方案

#include
#include
#include
DWORD WINAPI mymsg(LPVOID lp) {
	MessageBoxA(0, "hello", "china", 0);
}
int main() {
	HANDLE hthread;
	DWORD threadid;
	for (int i = 0; i < 5; i++) {
		hthread = CreateThread(
			NULL,
			NULL,
			mymsg,
			NULL,
			0,
			&threadid
			);
		WaitForSingleObject(hthread
			, INFINITE);
	
	}

	getchar();
	return 0;
}

代码效果
【已解决】C语言实现多线程的同步与异步_第1张图片

c语言多线程异步方案

#include
#include
#include
DWORD WINAPI mymsg(LPVOID lp) {
	MessageBoxA(0, "hello", "china", 0);
}
int main() {
	HANDLE hthread;
	DWORD threadid;
	for (int i = 0; i < 5; i++) {
		hthread = CreateThread(
			NULL,
			NULL,
			mymsg,
			NULL,
			0,
			&threadid
			);
		
	
	}

	getchar();
	return 0;
}

【已解决】C语言实现多线程的同步与异步_第2张图片

总结

对代码的查阅会发现,关键在于定义多线程的函数与句柄,最后一个循环分别创建一个线程即可。

你可能感兴趣的:(课外学习cpp,c语言,开发语言)