编程思想2 Zthread Demo http://bruce-eckel.developpez.com/livres/cpp/ticpp/v2/?page=page_14#L3.4.2.1 API http://zthread.sourceforge.net/html/annotated.html Runnable //执行任务的接口 Cancelable //可取消任务接口 Waitable //任务可阻塞等待接口 Thread //线程类 ThreadedExecutor //线程执行器,为每个Runnable任务创建一个线程 PoolExecutor //线程执行器,创建有限的线程集以并行方式执行提交任务 ConcurrentExecutor //线程执行器,此执行器串行化(顺序执行)提交给他的任务 SynchronousExecutor //线程执行器,类似ConcurrentExecutor à以下队列均基于std::deque<T>,具体差别可查询源码 BlockingQueue //阻塞队列(使用时报错= =!) BoundedQueue //限制大小的阻塞队列 LockedQueue //序列化访问队列,(当元素个数为0时next抛出异常) MonitoredQueue //序列化访问阻塞队列 Zthread中的任务被Zthread库机制自动地进行了引用计数,任务一直维持到该任务的引用计数归零,此时才能删除该任务.这就意味着,必须总是动态删除任务,所以它们不能在栈上创建.取而代之,任务必须总是用new来创建. CountedPtr模板 //自动执行引用计数并在引用计数归零时用delete删除一个对象 Mutex //互斥锁 FastMutext //使用本地操作系统的互斥锁 Guard模板 //创建于本地栈上,Lockable退出作用域时正确对Lockable对象解锁 Guard<Mutext> g(lock) //获取互斥锁 Guard<Mutext, TimedLockedScope<500> > g(lock)//500毫秒内不能获取锁,抛出Timeout_Exception异常 GuardedClass模板 //自动为整个类创建同步封装 ThreadLocal //线程本地存储 Condition //等待条件(执行等待(wait()—操作释放Mutex锁)和信号(release(), broadcast())操作) Synchronization_Exception zthread库所有异常的基类