Linux学习笔记---多线程
时间:2010-05-02 来源:wanpengcoder
多线程优势:
1.系统资源消耗低
2.速度会
3.线程之间的数据共享比进程间容易。
一些常用的函数:
1.pthread_create()----》创建成功的时候返回0
例子
int run = 1;
void *start_routine(void *arg);
pthread_t pt; ret = pthread_create (&pt, NULL, (void*)start_routine, &run); |
参数:1.用于标志一个线程--》pthread_t类型
2.线程属性
3.线程分配成功之后的运行单元
4.线程运行时需要的参数
2.pthread_join() and pthread_exit()--->线程结束
pthread_join是个等待函数,一直到被等待的线程结束为止,才返回并收回线程资源
例子:
pthread_t pt; int *ret_join = NULL; pthread_join(pt, (void*)&ret_join); |
参数:1.线程标识符
2.线程的返回值,通常用一个指针变量的地址来表示。
pthread_exit()线程推出并设置退出值
如:
int retvalue = 10;
phread_exit((void*)&)retvalue);
可以用pthread_join()来捕捉上述设置的返回值(retvalue),即上面的*ret_jion
线程属性:
例子:
#include <stdio.h> |
解释:init()--》初始化,在create之前进行
get()--》得到当前属性设置
set()--》设置当前线程属性
线程的绑定状态:pthread_attr_setscope()
线程的分离状态:pthread_attr_setdetachstate()
注意:当线程设置成分离线程时,可能在执行create()之前就终止了,此时create()获得线程标识将会发生错误。
下一篇:线程中互斥和和信号量使用