zoukankan      html  css  js  c++  java
  • pthread_wrap.h

    #ifndef _PTHREAD_WRAP_H
    #define _PTHREAD_WRAP_H
    #include <pthread.h>

    class hm_pthread_mutex
    {
    public:
    hm_pthread_mutex()
    {
    pthread_mutex_init(&m_mutex, 0);
    }
    ~hm_pthread_mutex()
    {
    pthread_mutex_destroy(&m_mutex);
    }

    inline void lock()
    {
    pthread_mutex_lock(&m_mutex);
    }
    inline void unlock()
    {
    pthread_mutex_unlock(&m_mutex);
    }

    private:
    pthread_mutex_t m_mutex;
    };

    class hm_pthread_rwlock
    {
    public:
    hm_pthread_rwlock()
    {
    pthread_rwlock_init(&m_rwlock, 0);
    }
    ~hm_pthread_rwlock()
    {
    pthread_rwlock_destroy(&m_rwlock);
    }

    inline void rdlock()
    {
    pthread_rwlock_rdlock(&m_rwlock);
    }
    inline void wrlock()
    {
    pthread_rwlock_wrlock(&m_rwlock);
    }
    inline void unlock()
    {
    pthread_rwlock_unlock(&m_rwlock);
    }

    private:
    pthread_rwlock_t m_rwlock;
    };

    class hm_pthread_cond
    {
    public:
    hm_pthread_cond()
    {
    m_complete = false;
    pthread_mutex_init(&m_mutex, 0);
    pthread_cond_init(&m_cond, 0);
    }

    ~hm_pthread_cond()
    {
    pthread_mutex_destroy(&m_mutex);
    pthread_cond_destroy(&m_cond);
    }

    inline void wait()
    {
    pthread_mutex_lock(&m_mutex);

    m_complete = false;
    while (!m_complete)
    pthread_cond_wait(&m_cond, &m_mutex);

    pthread_mutex_unlock(&m_mutex);
    }

    inline void notify(bool complete=true)
    {
    pthread_mutex_lock(&m_mutex);

    m_complete = complete;
    pthread_cond_signal(&m_cond);

    pthread_mutex_unlock(&m_mutex);
    }

    private:
    bool m_complete;
    pthread_mutex_t m_mutex;
    pthread_cond_t m_cond;
    };

    #endif//_PTHREAD_WRAP_H

  • 相关阅读:
    深度学习中的Data Augmentation方法(转)基于keras
    caffe pytho接口
    finetuning caffe
    windows下配置Faster-RCNN
    caffe中的props
    centos上搭建git服务--3
    centos上搭建git服务--2
    Centos上搭建git服务
    loadrunner--基础2
    loadrunner11--基础使用
  • 原文地址:https://www.cnblogs.com/walker-lc/p/4036674.html
Copyright © 2011-2022 走看看