将boost::thread的某些简单功能封装成类java线程的想法。

    最近对c++有些兴趣,主要是想自己写个数据库来玩玩。没想到用c++写东西还真的是一个字:难!(个人感觉,相较于java)

    听说boost库很不错,最主要的是,我看中了他的可移植性,就下下来试验下。嘿嘿,是个不错的东东,就是对用惯java的我来说,貌似不是很友好。我怒了,花一上午时间封装了它的线程库,至于效率啊,性能什么的,我就先不管了。可以继承该类重写run方法来创建一个新的线程类!

    头文件:

#pragma once
#ifndef THREAD_H_MYDB
#define THREAD_H_MYDB
#include <boost/thread.hpp>
#include <boost/bind.hpp>
namespace mydb{

    class Thread
    {
    private:
        typedef void (Thread:: *FunPtr)(void);
        boost::thread *thrd;
    public:
        Thread();
        void init();
        virtual ~Thread(void);
        virtual void run();
        void start();
        void join();
        boost::thread* getBoostThreadPtr();
    };

}
#endif

    实现文件:

    #include "Thread.h"
#include "iostream"


mydb::Thread::~Thread(void)
{
}
mydb::Thread::Thread(void ){
    //init();
    boost::function0<void> f =  boost::bind(&Thread::run,this);
    thrd=new boost::thread(f);
}
void mydb::Thread::run(){
    std::cout<<"this is base thread!!"<<std::endl;   
}
void mydb::Thread::start(){
   
}
void mydb::Thread::init(){
   
   
}
void mydb::Thread::join(){
    //todo 当前线程将会等待该线程完成再结束
    thrd->join();   
}
boost::thread* mydb::Thread::getBoostThreadPtr(){
    return thrd;
}

    在写这些代码的时候,我在csdn论坛发过些求助贴,很高兴,有人很快回答了我的问题,竟然还有人一眼看出我是用java的。。哎。

    。聊当给自己个玩具。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值