linux下的线程

一、pthread 线程

线程可以说是轻量级的进程,一般是一个进程中的多个任务。

进程:系统中的最小资源分配单元

线程:系统中最小执行单元

二、线程的特征

1、共享资源

2、效率高30%

3.使用第三方库(头文件加pthread.h 编译时添加 -lpthread)

三、线程的缺点

1、稳定性差

2、gdb调试比较麻烦

四、进程和线程的区别

1、线程比进程多了共享资源

2、线程只具有一部分的私有资源,进程间只有私有资源

3、进程空间独立,不能直接通信

线程可以共享空间,可以直接通信。

五、线程的设计框架

创建 ----> 空间操作 ------> 资源回收

六、相关函数

pthread_create(&tid,NULL,th,NULL)

创建线程:第一个参数是线程id

第二个参数是线程属性,默认是NULL属性

第三个参数是指向指针函数的函数指针,本质上就是函数的名字(回调函数)(执行空间)

第四个参数是函调函数的参数

pthread_self()

获取当前线程的线程id

pthread_exit(void *retval)

子线程自行退出,退出时返回参数中的状态

pthread_cancle(id)

结束一个进程,参数是要结束的线程的id号

pthread_join(id,void **retval)

将指定线程回收,具有阻塞功能。

第二个参数,就是线程结束时返回的状态,可以说就是pthread_exit()中参数的值

pthread_detach(id)

设置分离属性

相关推荐
honsor4 分钟前
机房IP化改造首选:以太网温湿度传感器,PoE供电+Modbus TCP一网搞定
linux·运维·服务器
kimnoic28 分钟前
PHP 8.2的DNF类型怎么用才规范
开发语言·php
_Evan_Yao1 小时前
前后端联调怎么排查问题?从 Network 到后端日志,一步步定位错误
开发语言·后端·团队开发·需求分析
hudd6681 小时前
JavaEE 初阶 - 多线程(进阶)
java·开发语言·java-ee
默|笙1 小时前
【Linux网络】_udp_socket(认识)
linux·网络·udp
小白快快跑哦1 小时前
python-字符串全解(六):正则表达式-前后相断言
开发语言·python·正则表达式·前后相断言
kimnoic1 小时前
Python数据分析中正则表达式匹配字符串与常用函数示例详解
开发语言·python
程序员梅雨1 小时前
ZooKeeper面经总结
java·大数据·linux·分布式·后端·zookeeper·中间件
中屹指纹浏览器svip1 小时前
打开账号环境网页报错,常见原因有哪些?
服务器·开发语言·php·中屹指纹浏览器
lingran__1 小时前
Linux进程万字详解(二)|进程状态深度剖析:调度队列、内核链表、D状态设计哲学、僵尸孤儿进程与Slab机制
linux·进程管理·内核链表·pcb·僵尸进程·孤儿进程·进程状态