zoukankan      html  css  js  c++  java
  • 函数的多线程调用——可重入函数和不可重入函数。

    可重入函数:函数可多线程同时调用,一般是在只有局部变量的函数中

    不可重入函数:函数一般情况下不可多线程同时调用,这样的函数中一般有全局、静态变量,而这样就涉及到了变量的保护问题,所以需要加入互斥锁/信号量/中断。

    可重入函数:

    void swap_temp(int* p int* q)
    {
        int temp;
        temp = *p;
        *p = *q;
        *q = temp;
    }

    不可重入函数:

    int g_temp;
    void swap_temp(int* p, int*q)
    {
        pthread_mutex_lock(&lock);
        g_temp = *p;
        *p = *q;
        *q = g_temp;
        pthread_mutex_unlock(&lock);
    }
    懒惰不会让你一下子跌到 但会在不知不觉中减少你的收获; 勤奋也不会让你一夜成功 但会在不知不觉中积累你的成果 越努力,越幸运。
  • 相关阅读:
    things to analysis
    retrieve jenkins console output
    temp
    temp
    mysql on Mac OS
    Scala的几个小tips
    docker查看容器使用率
    JVM性能监控(jconsole和jvisualvm)
    线程死锁问题
    线程阻塞状态
  • 原文地址:https://www.cnblogs.com/Rainingday/p/14366771.html
Copyright © 2011-2022 走看看