本文介绍如在在多线程mysql代码开发中使用互斥锁。
mysql自己对c++的mutex又进行了一次封装,封装的代码可以在include/mysql/psi/mysql_thread.h
下面大概地介绍下如何使用互斥锁。锁的生命周期大体为: 初始化锁-> *(上锁->解锁)->销毁锁。注 “*” 表示0个或多个。
初始化锁代码如下:
1.首先声明锁变量和 key变量, key是一个整型值
PSI_mutex_key key_dispatch;
mysql_mutex_t dispatch_mutex;
2.初始化锁
mysql_mutex_init(key_dispatch, &dispatch_mutex, MY_MUTEX_INIT_FAST);
上锁代码如下:
mysql_mutex_lock(&dispatch_mutex);
解锁代码如下:
mysql_mutex_unlock(&dispatch_mutex);
销毁锁的代码如下:
mysql_mutex_destroy(&dispatch_mutex);