创建多线程
一、线程死锁
1.产生死锁条件
2.解决方法
严格制定锁定资源的先后顺序,给每个需要进行锁定的资源进行编号,按照统一的顺序(编号由大到小或者由小到大的顺序)去锁定资源。
上图可以考虑优先锁定m1,再锁定m2(由小到大的顺序锁定)。
二、线程条件变量 condition_variable
condition_variable 通过条件控制线程阻塞或者唤醒。比如说有一个栈,vector<string> tasts用户保存任务,两个线程,Product函数进行生产,Consumer函数进行消费,实现生产者和消费者模式