说真的写了这篇博文时,才知道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://www.toymoban.com/news/detail-788076.html
总结
对代码的查阅会发现,关键在于定义多线程的函数与句柄,最后一个循环分别创建一个线程即可。文章来源地址https://www.toymoban.com/news/detail-788076.html
到了这里,关于【已解决】C语言实现多线程的同步与异步的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!