线程笔记

1.程序:是二进制文件,他存储在电子磁盘(物理内存)
进程:运行中的程序,系统会分配资源(管理所有打开文件的结构体,信号,虚拟内存…),系统分配资源最小单位
线程:在进程里面可以创建多个线程,同一个进程里面的线程是共用一套系统资源,系统调度的最小单位

2.线程的创建:
(1)就是在进程里面分配了一个新的任务结构体
(2)同一个进程里面的线程是共用一套系统资源(管理所有打开文件的结构体,信号,虚拟内存,进程id号…)
(3)同一个进程里面的每个线程都有自己的tid号
(4)创建线程的意义:用来执行多任务(同时执行多个while(1))
(5)同一个进程里面的线程共用全局变量(数据段)
(6)线程函数其实是一个普通函数,只是和其它线程同步运行

3.线程函数的退出:(1)线程函数退出,资源不是立刻就释放了,
(2)线程的资源,必须有其他线程回收它的资源或接合该线程,否则他就是僵尸线程,未释放系统资源
(3)return 在子线程表是退出该子线程,资源不是立刻就释放了
return 在主函数表示退出整个进程,退出整个进程后,所有的线程都会退出
return 在子函数里面表示结束该子函数
(4)线程的运行是互不影响的,主线程退出,子线程可以不退出
整个进程结束,是所有的线程结束才会退出或调用exit(0),_exit(0);

	 (5)退出线程, 主线程只能用pthread_exit函数去单独退出
		      主线程用ptread_exit去退出,只要还有其他的线程在运行,进程是不会结束
		      在子线程里面,可以return也可以用pthread_exit函数去单独退出

4.读写锁:–》让多个线程可以同时读取数据,但是不能同时写入,有一个写入数据时,其他的线程既不能读也不能写

5.线程的取消:–》杀死线程,由系统回收线程资源
–》取消线程不是立刻杀死线程,它有可能会等到遇到取消点才杀死线程
取消点—》系统认为可以安全杀死线程的点,一般是执行完某个函数
6.线程属性设置
第一:定义属性变量并初始化 pthread_attr_t
pthread_attr_init()
第二:调用你想设置的属性的接口函数
pthread_attr_setxxxxxxxx()
第三:创建线程的时候,第二个参数使用这个属性
第四:销毁属性
pthread_destroy();
或者:简版
pthread_detach(pthread_self()); //直接在线程开头设置线程结束后自我分离

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值