zthread多线程库的使用6 Cancelable 类与访问控制

10 篇文章 0 订阅

类canceable的作用是提供一个通用的接口 通过它 可以来改变线程的状态

通过isCancelable来获取线程的状态

这是一个Cancelable的实现 通过cancel来取消一个线程

通过isCanceled来获取线程状态

 

当然在使用的时候还是要采用CountedPtr<。。。>的模板形式较好

 

 

访问控制:

在多线程编程中一个需要注意的问题就是要防止线程同时访问同一个资源

其中一个方法就是加锁的办法(mutual exclusion) 互斥(mutex)

 

zthread中的互斥头文件是mutex.h

看xia mutex类他有3个主要的函数

acquire

release

和tryAcquire

 

只要在每次使用资源的时候 acquire一下 释放的时候release下就可以解决同时访问的问题啦

 

有代码为例

 

 

但是对于同一线程的加锁和解锁都要求处于安全状态  这要求互斥锁总能够被释放

于是乎引入了一个新的类  Gauard

可以保持在对象创建的时候有一个acqiure在释放的时候有一个release

其类的头文件是Guard.h 

简单的例子如下所示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值