#include <list>
#include <cstdio>
#include<cstdlib>
#include<unistd.h>
#include <exception>
#include <pthread.h>
#include<iostream>
#include<string>
#define num 3
using namespace std;
pthread_mutex_t lock;
volatile int XHL;
struct info{
int id;
string info;
};
void* fun(void* arg)
{
while(1)
{
XHL--;
if(XHL>0)
{
// pthread_mutex_lock(&lock);
auto i=(struct info*)arg;
sleep(3);
cout<<"thread_id:"<<i->id<<i->info<<endl;
// pthread_mutex_unlock(&lock);
XHL++;
// pthread_exit(nullptr);
}
}
}
int main(){
pthread_mutex_init(&lock,nullptr);
int a=2;
XHL=1;
pthread_t tid[num];
info t[num];
for(int i=0;i<num;i++)
{
cout<<"creat"<<endl;
t[i].id=i;
t[i].info="info";
int flag=pthread_create(&tid[i],nullptr,fun,(void*)&t[i]);
cout<<"pthread_self"<<pthread_self<<endl;
if(flag==-1)
cout<<"pthreat_creat error"<
C++多线程实例(信号量)
最新推荐文章于 2025-10-25 22:12:58 发布

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



