Linux多线程编程初步

 1、Process (进程)

进程,是管理程序运行的资源。(Process is container of the memory and resoures of the program)。

每个进程至少拥有一个线程(任务)来执行程序。

2、 Thread (线程)

线程是程序运行的通道, 操作系统通过线程, 按照一定顺序去逐步执行程序。 (A  thread is the path taken by a program while running, the steps performed, and the order in which the steps are performed.) 所有的程序都拥有至少一个线程,对于多线程的程序而言,每一个线程都是独立于其它的线程运行的。
进程中运行的第一个线程,称为初始线程(Initial thread)

 

2.1 线程的属性


可以在启动一个线程时设置线程的属性,或在线程运行的时候更改这些属性。常见的线程属性:
优 先 级  :  系统分配的运行时间
堆栈空间 :  影响到线程可以调用的函数数量
名        字  :  我们可以根据线程的名字,来 DEBUG或是 TRACK这个运行中的线程
线 程 组  :  我们可以通过线程组,来管理同一时间运行的多个线程
Detach state :  这个状态标识了当线程结束时,我们如何回收,或保留这个线程使用过的资源
任务计划 :  线程在系统或在应用中是如何被安排、计划的。
继        承 :  判断线程的属性是否继承

 

2.2 线程的常用函数

常用函数
函数使用
pthread_createint pthread_create(pthread_t *tid, const pthread_attr_t *tattr,void*(*start_routine)(void *), void *arg);

使用pthread_create可以向当前进程中添加新的受控线程。

返回值
pthread_create()在调用成功完成之后返回零。其他任何返回值都表示出现了错误。如果检测到以下任一情况,pthread_create()将失败并返回相应的值。
EAGAIN
描述:超出了系统限制,如创建的线程太多。
EINVAL
描述: tattr的值无效

pthread_join

函数会一直阻塞调用线程,直到指定的线程终止。

指定的线程必须位于当前的进程中,而且不得是分离线程。

在pthread_join()返回之后,应用程序可回收与已终止线程关联的任何数据存储空间。

pthread_self返回调用线程的thread identifier。
pthread_equal比较线程ID

剩下的函数慢慢补充

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值