#include <stdio.h>
#include <pthread.h>
#include <string.h>
//临界资源
char str[10] = "1234567";
int flag = 0; //0:printf 1:倒置
void* callBack1(void*arg)
{
while(1)
{
/*******临界区************/
if(0 == flag)
{
printf("%s\n", str);
flag = 1;
}
/*******临界区************/
}
pthread_exit(NULL);
}
void* callBack2(void*arg)
{
int i = 0;
char temp = 0;
while(1)
{
/*******临界区************/
if(1 == flag)
{
for(i=0; i<strlen(str)/2; i++)
{
temp = str[i];
str[i] = str[strlen(str)-1-i];
str[strlen(str)-1-i] = temp;
}
flag = 0;
}
/*******临界区************/
}
pthread_exit(NULL);
}
int main(int argc, const char *argv[])
{
pthread_t tid1,tid2;
//创建一个线程倒置
if(pthread_create(&tid1, NULL, callBack1, NULL) != 0)
{
fprintf(stderr, "pthread_create failed __%d__\n", __LINE__);
return -1;
}
pthread_detach(tid1);
//创建一个线程打印
if(pthread_create(&tid2, NULL, callBack2, NULL) != 0)
{
fprintf(stderr, "pthread_create failed __%d__\n", __LINE__);
return -1;
}
pthread_join(tid2, NULL);
reture 0;
}
作业:创建两个进程,打印字符串,一个打印,一个倒置
最新推荐文章于 2024-07-24 14:05:37 发布