【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
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
相关文章推荐
- Linux对所有用户设置自动注销功能
- linux中动态链接延迟绑定的实现
- linux 权限
- linux基础(4)--文件管理--RHEL6.5
- ssh 登录出现的几种错误以及解决办法
- postgresql9.5 run 文件linux安装后配置成开机服务
- 开源新闻速递(160502):Arch Linux 2016.05.01 发布
- vmware下CentOS的host-only连接
- Linux学习笔记:常用100条命令(三)
- Linux学习笔记:常用100条命令(二)
- CentOS 7 安装virtualBox
- Linux学习笔记:常用100条命令(一)
- centos安装第三方软件库,flash和视频播放器
- CentOS6.5个人目录下中文路径转英文路径
- Linux系统英文切换中文
- list.h linux内核链表分析
- linux基础(3)--可用实验环境配置--RHEL6.5
- Linux PS命令详解
- Linux驱动开发之 三 (那些必须要了解的硬件知识 之 存储器篇)
- Linux netstat命令详解