线程

/1.创建一个子线程,子线程执行循环输出10次”hello,world”,
主线程循环100次输出”123456”,如此循环 50 次,试写出代码。
/

#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
pthread_mutex_t mutex;
void printf_fun(char *buf)
{
    int i=0;
    for(i=0;i<10;i++)
        printf("%s\n",buf);
}
void *pth_work(void *arg)
{
    pthread_mutex_lock(&mutex);
    printf_fun("hello,world");
    pthread_mutex_unlock(&mutex);
    pthread_exit(NULL);
}
int main(void)
{
    int i=0;
    int cnt=0;
    pthread_mutex_init(&mutex,NULL);//创建普通锁
    int data[5]={1,2,3,4,5};
    //创建线程
    pthread_t pthid;
    while(1)
    {
        for(i=0;i<50;i++)
        {
            pthread_create(&pthid,NULL,pth_work,(void *)&data[0]);
            pthread_mutex_lock(&mutex);
            for(cnt=0;cnt<10;cnt++)
                printf_fun("123456");
            pthread_mutex_unlock(&mutex);
            sleep(1);
        }
        if(i==50)
            break;
    }
    return 0;
}

posted on 2024-02-28 22:01  wessf  阅读(2)  评论(0编辑  收藏  举报