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

发布时间:2024年01月13日

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

问题起源

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

c语言多线程同步方案

#include<Windows.h>
#include<stdio.h>
#include<stdlib.h>
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语言多线程异步方案

#include<Windows.h>
#include<stdio.h>
#include<stdlib.h>
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;
}

在这里插入图片描述

总结

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

文章来源:https://blog.csdn.net/m0_37149062/article/details/135576111
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。