#include <thread>
#include <windows.h>
#define NUM_ 8
#define CALL _stdcall
typedef int(CALL *ptr_th)(void* arg);
int CALL print_s(void *ptr)
{
int arg;
arg = (int)(*((int*)ptr));
Sleep(3);
printf("异步任务:%d\n", arg);
//(*((int*)ptr))++;//操作内存
return 0;
}
int pthread_create(std::thread *th, void * attr, ptr_th s, int *t){
(*th) = std::thread(s, t);
//printf("t++: %d\n", *t);
return 0;
}
int pthread_join(std::thread *th)
{
(*th).join();//等待任务
//(*th).detach();//异步任务
return 0;
}
int main(void)
{
int err, t;
std::thread th[NUM_];
for (t = 0; t < NUM_; t++)
{
printf("主线程 %d\n", t);
err = pthread_create(&th[t], NULL, print_s, &t);
if (err)
{
printf("error; return code is %d\n", err);
return 1;
}
}
Sleep(2);
for (t = 0; t < NUM_; t++)
pthread_join(&th[t]);
return 0;
}
window pthread.h
最新推荐文章于 2023-07-13 00:03:57 发布