扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
有两种办法:
创新互联专注于恩平网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供恩平营销型网站建设,恩平网站制作、恩平网页设计、恩平网站官网定制、小程序定制开发服务,打造恩平网络公司原创品牌,更为您提供恩平网站排名全网营销落地服务。
重载一个queue模板,把锁封装到重载的函数里
每次使用queue的函数的时候加锁,使用完毕后,解锁
在当前线程用mutex互斥锁把改变变量锁住,其他的线程在读写该变量前先获取该锁,这样如果主线程在使用了该锁,那其他线程就要等该锁被释放了,才能获取到该锁,才能对变量操作
让我来告诉你答案!设置状态变量lock=0,在占用资源的函数中,设置lock=1;并在处理结束后设lock=0.
比如:
boollock=0;
intscan()
{
while(lock!=0);//循环检测,直到资源释放才执行下面的语句
lock=1;//锁定资源
...//具体的执行扫描的语句
lock=1;//释放资源
return0;
}
这个方法容易实现,但是占用CPU,假定其他线程正在占用扫描仪,那么这个线程就会在自己的时间片内不停的执行while语句直到对方释放扫描仪。由此造成了浪费。
现在流行的做法是通过中断信号来做,那是一本书的内容,建议看linux内核编程方面的书。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流