如何用createthread创建两个线程实现字符的循环输入并且每隔五秒输出前面输入字符的个数 点击复制后,将打开C知道体验页 可
时间: 2023-05-16 18:06:12 浏览: 129
以下是使用createthread创建两个线程实现字符的循环输入并且每隔五秒输出前面输入字符的个数的代码示例:
```c
#include <stdio.h>
#include <windows.h>
DWORD WINAPI ThreadFunc(LPVOID lpParam);
int main()
{
HANDLE hThread1, hThread2;
DWORD dwThreadId1, dwThreadId2;
hThread1 = CreateThread(NULL, 0, ThreadFunc, (LPVOID)1, 0, &dwThreadId1);
hThread2 = CreateThread(NULL, 0, ThreadFunc, (LPVOID)2, 0, &dwThreadId2);
if (hThread1 == NULL || hThread2 == NULL)
{
printf("CreateThread failed (%d)\n", GetLastError());
return 1;
}
WaitForSingleObject(hThread1, INFINITE);
WaitForSingleObject(hThread2, INFINITE);
CloseHandle(hThread1);
CloseHandle(hThread2);
return 0;
}
DWORD WINAPI ThreadFunc(LPVOID lpParam)
{
int threadNum = (int)lpParam;
int count = 0;
while (1)
{
char input[100];
printf("Thread %d: Please input a string: ", threadNum);
scanf("%s", input);
count += strlen(input);
printf("Thread %d: Total count of characters: %d\n", threadNum, count);
Sleep(5000);
}
return 0;
}
```
这段代码创建了两个线程,每个线程都会循环输入字符串并计算输入字符的个数,然后每隔五秒输出前面输入字符的总数。使用CreateThread函数创建线程,传入线程函数ThreadFunc和线程参数,然后等待线程结束并关闭线程句柄。
阅读全文