Linux C多线程学习

 
 
/*************************************************************************
    > 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;
}
 
  
 
/*************************************************************************
    > 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);

}

多线程加锁

猜你喜欢

转载自www.cnblogs.com/xjyxp/p/11106085.html