1114. 按序打印【力扣】

题意理解
三个线程调用三个函数,保证函数调用顺序是第一个在前,第二个在中,第三个在后。
问题分析
用posix互斥锁。
类库是pthread.h
锁类型是pthread_mutex_t
pthread_mutex_init 初始化锁,锁类型变量作为参数
pthread_mutex_lock加锁,锁类型变量作为参数
【1114. 按序打印【力扣】】pthread_mutex_unlock释放锁,锁类型变量作为参数。
其他
https://blog.csdn.net/u012796139/article/details/46756969
链接

class Foo { public: pthread_mutex_t one; //声明两个互斥信号量 pthread_mutex_t two; Foo() { pthread_mutex_init(&one,NULL); //初始化信号量,NULL表示信号量参数默认 pthread_mutex_init(&two,NULL); pthread_mutex_lock(&one); //加锁 pthread_mutex_lock(&two); }void first(function printFirst) {// printFirst() outputs "first". Do not change or remove this line. printFirst(); pthread_mutex_unlock(&one); //执行完函数,释放 }void second(function printSecond) {// printSecond() outputs "second". Do not change or remove this line. pthread_mutex_lock(&one); //加锁,直到one函数执行完毕释放锁 printSecond(); pthread_mutex_unlock(&one); //释放one函数锁 pthread_mutex_unlock(&two); //释放two函数锁}void third(function printThird) {// printThird() outputs "third". Do not change or remove this line. pthread_mutex_lock(&two); //加锁,直到two函数执行完毕释放锁 printThird(); pthread_mutex_unlock(&two); //释放two函数锁 } };


    推荐阅读