#include <windows.h> #include <process.h> #include <iostream> #include <fstream> using namespace std; void ThreadFunc1(PVOID param) { while(1) { Sleep(1000); cout<<"This is ThreadFunc1"<<endl; } } void ThreadFunc2(PVOID param) { while(1) { Sleep(1000); cout<<"This is ThreadFunc2"<<endl; } } int main() { int i=0; _beginthread(ThreadFunc1,0,NULL); _beginthread(ThreadFunc2,0,NULL); Sleep(3000); cout<<"end"<<endl; cin>>i; return 0; }
时间: 2024-04-26 17:21:44 浏览: 38
您好,这段代码使用了 Windows 平台上的线程库来创建两个线程,分别执行 ThreadFunc1 和 ThreadFunc2 函数,同时在主线程中等待 3 秒后输出 "end"。这两个线程会无限循环执行,每隔 1 秒输出一次 "This is ThreadFunc1" 和 "This is ThreadFunc2"。
如果您有什么问题或者需要更详细的解释,请告诉我,我会尽力帮助您。
相关问题
#include "stdafx.h" #include <windows.h> #include <process.h> #include <iostream> #include <fstream> using namespace std; void ThreadFunc1(PVOID param) { while(1) { Sleep(1000); cout<<"This is ThreadFunc1"<<endl; } } void ThreadFunc2(PVOID param) { while(1) { Sleep(1000); cout<<"This is ThreadFunc2"<<endl; } } int main() { int i=0; _beginthread(ThreadFunc1,0,NULL); _beginthread(ThreadFunc2,0,NULL); Sleep(3000); cout<<"end"<<endl; cin>>i; return 0; }实现顺序输出This is ThreadFunc1,This is ThreadFunc1
与This is ThreadFunc2交替输出的功能,可以使用互斥锁来实现线程同步。代码如下:
#include "stdafx.h"
#include <windows.h>
#include <process.h>
#include <iostream>
#include <fstream>
using namespace std;
HANDLE Mutex;
void ThreadFunc1(PVOID param) {
while(1)
{
WaitForSingleObject(Mutex,INFINITE); // 等待互斥锁
cout<<"This is ThreadFunc1"<<endl;
ReleaseMutex(Mutex); // 释放互斥锁
Sleep(1000);
}
}
void ThreadFunc2(PVOID param) {
while(1)
{
WaitForSingleObject(Mutex,INFINITE); // 等待互斥锁
cout<<"This is ThreadFunc2"<<endl;
ReleaseMutex(Mutex); // 释放互斥锁
Sleep(1000);
}
}
int main() {
int i=0;
Mutex = CreateMutex(NULL,FALSE,NULL); // 创建互斥锁
_beginthread(ThreadFunc1,0,NULL);
_beginthread(ThreadFunc2,0,NULL);
Sleep(3000);
cout<<"end"<<endl;
cin>>i;
CloseHandle(Mutex); // 关闭互斥锁句柄
return 0;
}
在这个程序中,创建了一个互斥锁对象Mutex,然后在ThreadFunc1和ThreadFunc2中使用WaitForSingleObject和ReleaseMutex来实现对Mutex的加锁和解锁操作,从而保证了两个线程输出的互斥性。
#include <iostream> #include <fstream> #include <vector> #include <string> using namespace std; //
这是一段C++程序的头文件部分,包含了一些标准库的头文件,具体介绍如下:
1. iostream:提供了输入输出流的基本功能,如cin、cout等。
2. fstream:提供了文件操作相关的功能,如读写文件等。
3. vector:提供了可变大小数组的功能,可以方便地进行动态管理。
4. string:提供了字符串相关的功能,如字符串的拼接、截取等。
其中,using namespace std; 表示使用标准命名空间,可以简化程序中的代码。
阅读全文