码迷,mamicode.com
首页 > 编程语言 > 详细

linux线程

时间:2015-03-30 01:15:38      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

apue第十一章、十二章详细介绍线程。

 

关于线程的头文件:

#include <pthread.h>

 

关于线程的函数:

pthread_self() ,    //获取自己的线程ID

pthread_create(),   //创建新线程,参数自己去翻

pthread_exit(),    //结束线程

pthread_join(),  //等待某个线程的结束,阻塞模式,当被等待的线程调用pthread_exit()时,此函数才返回。

函数原型:extern int pthread_join __P ((pthread_t __th, void **__thread_return));

注意:第一个参数为被等待的线程ID,第二个参数将返回被等待的线程执行pthread_exit((void* arg))时的参数arg,然后被等待的线程执行了pthread_exit()后,就会释放该线程的所有资源,所以该变量不能为被等待线程的局部变量,不然会内存越界。详见下面例子。

注意:pthread_create()有可能在g++下编译不过,需要带上线程的一个编译库文件,比如: g++ hello.cpp -lpthread

如果在codeblocks上需要添加链接库:

Settings->Global compiler settings->Linker settings->add.....

线程库文件一般在/usr/lib/libpthread.so , 如果没有就查找下:find / -name ‘libpthr*‘ 

如果查找不到就用root账户:apt-get install libpthread(名字可能不对)

 

类型:

进程的类型是pid_t , int

线程的类型是pthread_t , unsigned long int

 

线程终止:

详见apue第十一章,

如果进程中任意一个线程调用了exit,_Exit,_exit该进程就会终止~!!!

单个线程终止有三种方法:

1>从创建线程的回调函数中直接return , 也就是直接从启动例程中返回,返回值是线程的退出码。

2>线程可以被同一进程中的其他线程取消

2>线程调用pthread_exit

 

linux线程

标签:

原文地址:http://www.cnblogs.com/alazalazalaz/p/4376722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!