linux线程互斥锁用法,防止竞争,多线程锁用法
mutex lock实例
mutex_lock例子
linux互斥锁范例
linux互斥锁实例
linux互斥锁例子
linux互斥锁pthread_mutex_lock用法范例
linux互斥锁用法实例
linux互斥锁使用例子

    #include<stdlib.h>
    #include<stdio.h>
    #include<unistd.h>
    #include<pthread.h>
    typedef struct ct_sum
    { int sum;
      pthread_mutex_t lock;
    }ct_sum;
    void * add1(void * cnt)
    {     

        pthread_mutex_lock(&(((ct_sum*)cnt)->lock));
        int i;
            for( i=0;i<50;i++)
            {(*(ct_sum*)cnt).sum+=i;

            }
        pthread_mutex_unlock(&(((ct_sum*)cnt)->lock));
        pthread_exit(NULL);
        return 0;
    }
    void * add2(void *cnt)
    {     
        int i;
        cnt= (ct_sum*)cnt;
        pthread_mutex_lock(&(((ct_sum*)cnt)->lock));
        for( i=50;i<101;i++)
        {    (*(ct_sum*)cnt).sum+=i;

        }
        pthread_mutex_unlock(&(((ct_sum*)cnt)->lock));
        pthread_exit(NULL);
        return 0;
    }
    int main(void)
    { int i;
      pthread_t ptid1,ptid2;
      int sum=0;
      ct_sum cnt;
      pthread_mutex_init(&(cnt.lock),NULL);
      cnt.sum=0;
      pthread_create(&ptid1,NULL,add1,&cnt);
    pthread_create(&ptid2,NULL,add2,&cnt);

     pthread_mutex_lock(&(cnt.lock));
     printf("sum %d\n",cnt.sum);
     pthread_mutex_unlock(&(cnt.lock));
     pthread_join(ptid1,NULL);
     pthread_join(ptid2,NULL);
      pthread_mutex_destroy(&(cnt.lock));
      return 0;
    } 
GitHub 加速计划 / li / linux-dash
11
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐