互斥锁--pthread_mutex
发布日期:2021-05-14 19:08:25 浏览次数:15 分类:精选文章

本文共 3492 字,大约阅读时间需要 11 分钟。

���������pthread_mutex���C���������������������������������������������

������������������������pthread_mutex���C���������������������������������������OC������NSLock������������������������������������pthread_mutex������������������������pthread_mutex���������API���������������������������������


������������������

������pthread_mutex_init���������������������������

int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);

������������������������

  • pthread_mutex_t mutex���������������������������������������

  • pthread_mutexattr_t attr���������������������������������������������

  • ������������������������

    • PTHREAD_MUTEX_NORMAL���������������������������������������������������������������������������������������������������������������������������������

    • PTHREAD_MUTEX_ERRORCHECK������������������������������������������������������������������EDEADLK������������������������������������������������������������

    • PTHREAD_MUTEX_RECURSIVE������������������������������������������������������������������������������������������������

    • PTHREAD_MUTEX_DEFAULT���������������������������������������������������������������������������

    ���������������

    static pthread_mutex_t myMutex = NULL;
    if (pthread_mutex_init(&myMutex, NULL) != 0) {
    /* ��������������������� */
    }

    ���������������������������

    ���������

    int pthread_mutex_lock(pthread_mutex_t *mutex);
    • ������������0������������������������������

    • ���������������������������������������������������������������������������������

    ���������������

    int pthread_mutex_trylock(pthread_mutex_t *mutex);
    • ������������0���������������������

    • ���������������������������EBUSY���������������������������

    ���������������

    int shared_data = 0;
    pthread_mutex_lock(&myMutex);
    shared_data++;
    pthread_mutex_unlock(&myMutex);

    ���������������

    ������������

    int pthread_mutex_unlock(pthread_mutex_t *mutex);

    ���������������

    • ������������0���

    • ���������������������������������������


    ���������������

    locker Programs

    int pthread_mutex_destroy(pthread_mutex_t *mutex);

    ���������

    • ������������������������������������������������������

    • ������������������������������������

    ���������

    if (pthread_mutex_destroy(&myMutex) != 0) {
    /* ������������������ */
    }

    ������������������������

    ���������������������

    int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr, bool shared);

    ���������

    • shared���������true������������������������������������false������������������������������������

    ���������������

    int pthread_mutexattr_getpshared(pthread_mutexattr_t *attr, bool *shared);

    ���������

    pthread_mutexattr_t attr = {0};
    // ���������������������������
    attr.pshared = false;
    if (pthread_mutexattr_init(&attr, PTHREAD_MUTEXattr_init) != 0) {
    /* ������������������������ */
    }

    ������������������������

    ���������������������pthread_mutex_getattr������������

    • ���������������������������������������������������������������������������

    • ������������������������ disablesmmoter������������.


    ##���������������������

    ���������������������������������������������������������������������������������������������������


    ������������������������

    ���������������

    ������������������������������������������PTHREAD_MUTEX_RECURSIVE���������������������������������������������������������������������

    ������������������

    ������������������������������������������������������������������������������������������������������


    ���������������������������������������������������������������pthread_mutex���������������������������������������������������������������

    上一篇:互斥锁--NSCondition
    下一篇:互斥锁--@synchronized

    发表评论

    最新留言

    逛到本站,mark一下
    [***.202.152.39]2025年04月13日 19时21分32秒