美文网首页
线程锁,java 层和 C++ 层

线程锁,java 层和 C++ 层

作者: that_is_this | 来源:发表于2018-09-04 10:39 被阅读9次

1. java 锁

http://wiki.jikexueyuan.com/project/java-concurrent/locks-in-java.html

private static final ExecutorService mSingleThreadExecutor = Executors.newSingleThreadExecutor();

public static final Lock mLock = new ReentrantLock();
mLock.lock();
mLock.unlock();


2. C++ 锁

https://blog.csdn.net/primeprime/article/details/79697083
https://www.cnblogs.com/yongdaimi/p/8267335.html

  1. mutex
static pthread_mutex_t mutex;
pthread_mutex_init(&mutex, NULL);
pthread_mutex_destroy(&mutex);

pthread_mutex_lock(&mutex);
pthread_mutex_unlock(&mutex);
  1. sem

初始化:初始化信号量

static sem_t g_DeviceIDSem;
sem_t* config_GetDeviceIDSem() {
    return &g_DeviceIDSem;
}

sem_t* deviceIDSem = config_GetDeviceIDSem();
sem_init(deviceIDSem, 0, 0);

线程等待:执行到这一步暂停执行

sem_t* deviceIDSem = config_GetDeviceIDSem();
sem_wait(deviceIDSem);

线程释放:让等待的线程继续执行

    sem_t* deviceIDSem = config_GetDeviceIDSem();
    if (deviceIDSem != NULL) {
        sem_post(deviceIDSem);
    }

相关文章

网友评论

      本文标题:线程锁,java 层和 C++ 层

      本文链接:https://www.haomeiwen.com/subject/uhqswftx.html