您的位置:首页 > 运维架构 > Linux

【Linux C王者归来】【第十五章】【线程】

2016-05-02 15:59 330 查看
1.进程为单位分配资源,每个线程都有自己的运行环境上下文,包括线程id,一组寄存器的值,堆栈,信号屏蔽字。

2.内核里的每个轻量级进程对应用户空间的一个线程。内核中轻量级进程的对照是独立的

3.pthread_self()获取当前线程的id

pthread_equal 判定线程id是否一致

4.线程的创建:

pthread_create(pthread_t *,线程属性无指派NULL,函数运行体,函数运行参数),第一参数返回内核分配的id;第四个参数要结构体化,传void指针

5.线程和进程调度权利相等

6.函数fprintf

7.新线程和进程共用堆栈,进程的地址空间对任意线程都是开放的

8.终止进程:

A.运行完结束 ,相当于return

B.被另一个进程取消

C.自行退出,相当于exit

9.pthread_exit

10.线程结束信息有两种,A.线程体函数返回的指针指向区域 B.pthread_exit返回的所指向的区域

11.pthread_join(id,指针) 获取得到进程的信息,如果未结束,会进入阻塞状态。如果是被其他进程取消,则是固定的常量值

12.线程结束,存储信息在内核中知识存在首地址,因此不能把信息放在局部变量中。malloc分配的内存,全局变量和外部调用者的参数均可有效保存。

13.pthread_cancel(id),相当于被取消进程调用pthread_exit(PTHREAD-CANCELED),其作为join的获取值可以

14.线程退出函数:

pthread_cleanup_push(函数指针,函数参数)

pthread_cleanup_pop()

正常退出不会调用清理程序P421
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: