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

第十一章:线程

时间:2014-11-25 10:42:24      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   使用   sp   数据   on   div   

pthread
1、引言
2、线程概念
3、标示
进程ID使用pid_t数据类型来表示,线程ID使用pthread_t数据类型来表示。
#include <pthread.h>
int pthread_equal(pthread_t tid1, pthread_t tid2); // 用来比较两个线程ID是否相等
pthread_t pthread_self(void); // 线程用来获取自身的线程ID
当线程需要识别以线程ID为标示的数据结构时,pthread_self函数可以和pthread_equal函数一起使用。例如,主线程可能把工作任务放在一个队列中,用线程ID来控制每个工作线程处理哪些作业(如图p289—apue)。主线程把新的作业放到一个工作队列中,由三个线程组成的线程池从队列中移出作业,每个线程并不是任意地处理从队列顶端取出的作业,而是由主线程控制作业的分配,主线程在每个待处理作业的结构中放置处理改作业的线程ID,每个工作线程只能移出标有自己线程ID的作业。
4、线程创建
#include <pthread.h>
int pthread_create(pthread_t *restrict tidp, 
const pthread_attr_t *restrict attr, 
void *(*start_rtn)(void), void *restrict arg); // 创建线程
成功返回0, 否则返回错误编码
当pthread_create创建成功时,由tidp指向的内存单元被设置为新创建线程的线程ID。attr参数用于定制各种不同的线程属性。现在先设置为NULL
新创建的线程从start_rtn函数开始运行,该函数只有一个无类型指针参数arg,如果需要向start_rnt传递的参数不止一个,那么需要把这些参数放到一个结构中,然后把这个结构的地址作为arg参数传入

示例:pthread_1.cpp

 

第十一章:线程

标签:style   blog   ar   color   使用   sp   数据   on   div   

原文地址:http://www.cnblogs.com/lit10050528/p/4120201.html

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