文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Linux学习笔记---多线程

Linux学习笔记---多线程

时间:2010-05-02  来源:wanpengcoder

Linux学习笔记---多线程

多线程优势:

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>
#include <pthread.h>
#include <sched.h>

pthread_attr_t attr; /*线程属性结构*/
struct sched_param sch; /*优先级,在第三个同文件中*/
pthread_t pt;
pthrea_attr_init(&attr);
pthread_attr_getschedparam(&attr, &sch);
sch.sched_priority = 25;
pthread_attr_setschedparam(&attr, &sch);
pthread_creat(&pt, &attr, (void*)start_routine, &run);


解释:init()--》初始化,在create之前进行
     get()--》得到当前属性设置
     set()--》设置当前线程属性

线程的绑定状态:pthread_attr_setscope()

线程的分离状态:pthread_attr_setdetachstate()
注意:当线程设置成分离线程时,可能在执行create()之前就终止了,此时create()获得线程标识将会发生错误。

下一篇:线程中互斥和和信号量使用
相关阅读 更多 +
排行榜 更多 +
崩溃大陆2鱼竿如何获取

崩溃大陆2鱼竿如何获取

冒险解谜 下载
狙击手行动

狙击手行动

冒险解谜 下载
狙击突围行动最新版

狙击突围行动最新版

冒险解谜 下载