线程的相关知识 day01

刚刚休息了,今天再发一篇博客,今天开始(总共三天),我会发表一些线程的相关知识,请大家能够寻找我的不足,谢谢xdm了.
冲冲冲 O(∩_∩)O.


1.线程概念

	何为线程呢?我的理解就是与就是一个进程的一个控制单元,一个进程至少有一个线程,线程可以与			
进程共享堆和方法区的资源,但线程拥有自己的局部变量,也就是说拥有自己的栈区,
由于它是与进程共享内存,不像进程那样拷贝内存空间,这使得多个线程来回切换时,
负担小的许多,这也时线程的优势,如果我们之前的网络银行用线程会变得方便许多,
就不用反复的读取文件和给文件上锁,因为线程与进程的内存空间部分是共享的,
只需对部分竞争内容上锁就行了,这个就先聊到这,
到时候我会重新写一篇,用线程写的网络银行.

2.生成线程

int pthread_create(	//用该函数生成的线程结束时,是否会自动释放内存跟第二个参数相关
			pthread_t *thread, //线程id
			const pthread_attr_t *attr,//线程属性,默认为NULL时,为未分离属性,需要手动释放系统资源 
           		 void *(*start_routine) (void *),//线程开始从start_routine开始运行
           		 void *arg	//如果线程需要形参,则需要传递,否则可为NULL
           			 );

3.等待线程结束,并释放资源

int pthread_join(调用这个函数时,除非等待的id线程结束,否则调用该函数的线程会处于阻塞
				pthread_t thread,	//所需要等待的线程id
				 void **retval	//线程结束所需要保存的返回值
				 );
				该函数只能对非分离的线程使用,
				且该线程调用时只是释放系统资源,
				如果申请了malloc资源则需要手动释放
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值