boost线程库学习--(1)创建和执行线程

27 篇文章 1 订阅

今天开始学写boost线程库,该程序是一个最基本的使用boost线程库的测试程序,开发环境是linux环境。

测试源程序如下,该程序实现如下功能:

1、编译运行后程序启动一个线程每隔一秒打印一个helloworld,主线程每隔一秒打印一个main,程序简单已经添加注释

/*
 *File:test.cpp
 *Author:yingxianFei
 *Date:2014-2-19
 *Description:linux下的boost线程库测试程序
 */

#include <boost/thread/thread.hpp>
#include <iostream>
#include <unistd.h>

using namespace boost;
using namespace std;


/*
 *Function:hello
 *Description:一个用于每隔一秒打印hello,world的函数
 *Input:none
 *Return:none
 */
void hello()
{
 	while(1)  {
       std::cout<<"hello,world"<<std::endl;
	   sleep(1);
	}
}


/*
 *
 *Function:main
 *Description:主函数
 *Input:none
 *Return:  正常时返回0,错误时返回1
 */
int main(void)
{
	boost::thread th(hello);
//	th.detach();//分派任务,使用后新线程与主线程一起运行
	th.join();//执行子线程,会阻塞主线程
	while(1)  {
	   std::cout <<"main"<<std::endl;
	   sleep(1);
	}
	return 0;
}

2、makeflie文件如下:

小弟初学所以编程很不规范,主要只是自己笔记使用,偌大牛见到勿笑,还望能多多指教,我的boost头文件在/usr/local/boost/x86/include目录下,库文件在/usr/local/boost/x86/lib目录下,Makefile内容如下

CC = g++
CFLAG += -Wall
CINCLUDE = -I/usr/local/boost/x86/include
CLIB = -L/usr/local/boost/x86/lib
CLD = -lboost_system -lboost_thread

SRCS := \
	test.cpp
TARGET:=test

all:$(TARGET)
$(TARGET):$(SRCS)
	$(CC) $(CFLAG) $(CINCLUDE) $(CLIB) $(CLD) $^ -o $@

.PHONY:clean
clean:
	-@rm $(TARGET)

3、执行make编译程序,编译完成后运行可执行文件测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值