创建三个线程ABC,每个线程输出自己的线程ID,并按照ABCABCABC...的顺序输出(ABC出现10次)
每个线程轮询一个全局变量强制使线程看似串行执行,轮询耗资源较大:
#include<unistd.h>
#include<pthread.h>
#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
int i=0;//全局变量
static int j=10;
void* th_1(void* arg){
while(j>0){//还没有输出10次
while(i!=1);//轮询
cout<<"A";
i=2;
j--;
}
return NULL;
}
void* th_2(void* arg){
while(j>0){
while(i!=2);
cout<<"B";
i=3;
}
return NULL;
}
void* th_3(void* arg){
while(j>0){
while(i!=3);
cout<<"C";
i=1;
}
retu