• 实现死锁


    实现死锁
    #include<stdio.h>
    #include<stdlib.h>
    #include<pthread.h>
    #include<errno.h>
    #include<unistd.h>
    #include<string.h>

    pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;//初始化了一个MUTEX锁

    void *func1(void *arg)
    {
         pthread_mutex_lock(&mutex);//给mutex加锁,这是一条原子操作,不可能出现两个线程同时执行这个代码
         int *a = (int *) arg;
         printf("thread%d start ", *a);
         int i;
         for (i = 0; i < 10; i++)
         {
              printf("thread%d is running ", *a);
              sleep(1);
         }
         printf("thread%d end ", *a);
         pthread_mutex_unlock(&mutex);//给mutex解锁
         pthread_exit(NULL);
    }

    void *func2(void* arg)
    {
        pthread_t th = *(pthread_t*)arg;
        sleep(2);
        pthread_cancel(th);
    }

    int main(int arg, char * args[])
    {
         printf("process start ");
         pthread_t thr_d1, thr_d2;
         int i[2];
         i[0] = 1;
         i[1] = 2;
         pthread_create(&thr_d1, NULL, func1, &i[0]);
        sleep(1);
         pthread_create(&thr_d2, NULL, func1, &i[1]);
         //设置死锁产生
        pthread_t thr_d3;
        pthread_create(&thr_d3, NULL, func2, &thr_d1);
         pthread_join(thr_d1, NULL);
         pthread_join(thr_d2, NULL);
         printf("process end ");
         return 0;
    }





  • 相关阅读:
    摩托罗拉挪动诉TiVo数字录像手艺专利侵权
    动静称Verizon三月末推出WP7手机
    2月25日中国观点股全线下跌 优酷网涨7.06%
    Verizon CEO称C版iPhone销售微弱
    外来往戏出海案例:热酷日本掘金之路
    摩根大通旗下基金或以4.5亿美元入股Twitter
    TCL通讯2010年净利润6.11亿元 同比增200%
    马克·扎克伯格和Facebook星球
    2月25日中国观点股评级:维持网易买入评级
    美媒评全球十家增速最快IT办事公司 当当网居首
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4531246.html
Copyright © 2020-2023  润新知