曾经尝试对pthread进行封装,使用Thread虚基类,子类重写run方法的方式。详情见:
C++封装POSIX 线程库(三)线程的封装
最近阅读 以boost::function和boost:bind取代虚函数学习了使用boost::function和boost::bind对Thread库进行封装。
令Thread是一个具体类,其构造函数接收ThreadCallback对象。应用程序只需提供一个能够转换为ThreadCallback的对象,即可创建Thread实体,然后调用start()即可。Java中的Thread可以这么用,传入一个Runnable对象。
下面实现了一个基于boost::function的简单的Thread Class
//Thread.h
#ifndef __THREAD_H__
#define __THREAD_H__
#include <iostream>
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include <unistd.h>
#include <vector>
#include <memory>
using namespace std;
us