Linux C多线程学习

/*************************************************************************
    > File Name: eg4.c
    > Author: 
    > Mail: 
    > Created Time: 2019年06月29日 星期六 10时56分11秒
 ************************************************************************/

#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>

pthread_mutex_t lock;
int s = 0;
void* myfunc(void* args){
    int i = 0;
    for(i=0; i<1000000; i++){
        pthread_mutex_lock(&lock);
        s++;
        pthread_mutex_unlock(&lock);
    }
    return NULL;
}
int main(){
    pthread_t th1;
    pthread_t th2;
    pthread_mutex_init(&lock, NULL);

    pthread_create(&th1, NULL, myfunc, NULL);
    pthread_create(&th2, NULL, myfunc, NULL);

    pthread_join(th1, NULL);
    pthread_join(th2, NULL);
    printf("s=%d\n", s);

}

多线程加锁

 

/*************************************************************************
    > File Name: test1.c
    > Author: 
    > Mail: 
    > Created Time: 2019年06月28日 星期五 21时12分51秒
 ************************************************************************/

#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>

void* myfunc(void* args){
    int i;
    char* name = (char*)args;
    for(i=1;i<50;i++){
        printf("%s:%d\n", name, i);
    }

    return NULL;
}


int main(){
    pthread_t th1;
    pthread_t th2;

    pthread_create(&th1, NULL, myfunc, "th1");
    pthread_create(&th2, NULL, myfunc, "th2");
    pthread_join(th1, NULL);
    pthread_join(th2, NULL);

    return 0;
}

 

posted @ 2019-06-29 11:29  xjyxp01  阅读(223)  评论(0编辑  收藏  举报