zoukankan      html  css  js  c++  java
  • 互斥锁封装

    #include<iostream>
    #include<pthread.h>
    using namespace std;
    class MutexLock
    {
            private:
                    pthread_mutex_t mutex;
                    //pthread_cond_t cond;
            public:
                    MutexLock()
                    {
                            cout<<"MutexLock()"<<endl;
                            pthread_mutex_init(&mutex,NULL);
                    }
                    ~MutexLock()
                    {
                            cout<<"~Mutexlock()"<<endl;
                            pthread_mutex_destroy(&mutex);
                    }
                    void lock()
                    {
                            //cout<<"Lock()"<<endl;
                            pthread_mutex_lock(&mutex);
                    }
                    void unlock()
                    {
                            //cout<<"unlock()"<<endl;
                            pthread_mutex_unlock(&mutex);
                    }
    };
    //没有互斥锁的时候的结果
    int num = 0;
    void *func(void* p)
    {
            MutexLock *mutp = (MutexLock*)p;
            for(int idx=0;idx!=5e8;idx++)
            {
                    (*mutp).lock();
                    num++;
                    (*mutp).unlock();
            }
            pthread_exit(NULL);
    }
    int main(void)
    {
            MutexLock mut;
            pthread_t pth;
            pthread_create(&pth,NULL,func,(void*)&mut);
            for(int idx=0;idx!=5e8;idx++)
            {
                    mut.lock();
                    num++;
                    mut.unlock();
            }
            pthread_join(pth,NULL);
            cout<<"num="<<num<<endl;
    }
    //用了互斥锁的时候的结果
  • 相关阅读:
    ACM-ICPC 2018 徐州赛区网络预赛 Morgana Net
    ACM-ICPC 2018 焦作赛区网络预赛 E. Jiu Yuan Wants to Eat ,树链抛分+线段树
    ACM-ICPC 2018 焦作赛区网络预赛 Poor God Water 矩阵快速幂
    ACM-ICPC 2018 南京赛区网络预赛 E AC Challenge 状压dp
    codeforces 776 D The Door Problem
    codeforces 765 E Tree Folding
    codeforces 765 D Artsem and Saunders
    P2764 最小路径覆盖问题
    SPOJ Count on a tree 主席树+lca
    BZOJ 1066 蜥蜴
  • 原文地址:https://www.cnblogs.com/meihao1203/p/8861449.html
Copyright © 2011-2022 走看看