#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
void* fun(void* arg);
int main(int argc,const char* argv[])
{
pthread_t thd;
int* p=new int(1);
pthread_create(&thd,NULL,fun,NULL);
int i=0;
for(;i<10;++i)
{
printf("child thread id is:%x\n",thd);
sleep(1);
}
delete p;
return 0;
}
void* fun(void* arg)
{
int i=0;
for(;i<10;++i)
{
printf("hi,child thread,:%d\n",*p);
sleep(1);
}
pthread_exit(NULL);
}
这段代码编译不会通过,p会被报错“未被声明”,说明man线程中的堆变量时局部堆变量,不会被共享。
小白学c++之多线程共享资源
最新推荐文章于 2023-06-04 10:38:35 发布