转载自 http://www.cnblogs.com/quincyhu/p/5884361.html
例子也请访问这个博客的页面
技术要点
//使用 -lpthread 库编译下面的程序:
g++ test.cpp -lpthread -o test.o
*很多方面是类似的有点像UCOS
若线程调用到的函数在一个类中,则必须将该函数声明为静态函数函数.因为静态成员函数属于静态全局区,线程可以共享这个区域,故可以各自调用。
** 代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行
**线程创建时属性参数的设置pthread_attr_t及join功能的使用
线程的属性由结构体pthread_attr_t进行管理。
typedef struct{
int detachstate; //线程的分离状态
int schedpolicy; //线程调度策略
struct sched_param schedparam; //线程的调度参数
int inheritsched; //线程的继承性
int scope; //线程的作用域
size_t guardsize; //线程栈末尾的警戒缓冲区大小
int stackaddr_set;
void * stackaddr; //线程栈的位置
size_t stacksize; // 线程栈的大小}pthread_attr_t;
---------------------------我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着这份光,我便能把黑夜当成白天。我从来就没有太阳,所以不怕失去。
--------《白夜行》