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

来源:互联网 发布:福建卓知集团 编辑:程序博客网 时间:2024/05/17 21:41

类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 

简单的例子如下所示

原创粉丝点击