当前位置: 首页 > news >正文

Linux系统编程——多线程编程(一)

Linux系统编程——多线程编程(一)

pthread_create函数

int pthread_create(pthread_t *thread, const pthread_attr_t* attr,void* (*start_routine)(void*), void* arg);

功能:创建一个线程运行start_routine执行的函数。
thread:线程信息
attr:线程属性,一般设置为NULL
start_routine:所要运行的函数
arg:运行函数的参数
返回值:成功返回0,失败返回错误码

pthread_join函数

int pthread_join(pthread_t thread, void** retval);

功能:等待thread对应的线程结束。
thread:线程信息。
retval:线程返回值,为NULL时忽略。
返回值:成功返回0,失败返回错误码。

pthread_exit函数

int pthread_exit(void* retvall);

功能:退出线程,类似于退出进程的exit函数
retval:退出状态码。
返回值:总是成功,因此忽略。

pthread_cancel函数

int pthread_cancel(pthread_t thread)

功能:向线程thread发送一个取消请求。目标线程是否以及何时对该取消请求作出响应,取决于该线程控制的两个属性。
返回值:成功返回0,失败返回错误码。

实例:多线程实现终端输入输出

代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>char buf[256];
int flag = 0;
void* thread_func(void* arg)
{while (1){if(flag) {puts(buf);if (strncmp(buf, "quit",4) == 0) {pthread_exit(NULL);}flag = 0;}}return 0;}int main()
{pthread_t tid;if (pthread_create(&tid, NULL, thread_func, NULL) != 0) {perror("pthread_create failed");return 1;}while (1) {fgets(buf,sizeof(buf),stdin);if(strncmp(buf, "quit", 4) == 0) {break;}flag = 1;}pthread_join(tid, NULL);return 0;
}

执行结果:
在这里插入图片描述

http://www.dtcms.com/a/582350.html

相关文章:

  • 建设钓鱼网站源码网站seo优化心得
  • 关方网站买微信我们做网站 出教材 办育心经
  • python+django/flask基于深度学习的个性化携程美食数据推荐系统
  • VRRP虚拟路由冗余
  • 嵌入式软件OTA升级,有哪几种FLASH划分方式?
  • wordpress 投稿者 权限厦门做网站seo
  • 玩转Rust高级应用 如何避免对空指针做“解引用”操作,在C/C++ 里面就是未定义行为
  • 音视频处理(三):hls协议和m3u8详解和视频下载爬虫实战
  • Java面试全生态图谱(2025体系版)
  • 亳州做网站的公司公司品牌网站建设
  • 泉州网站公司wordpress 搜索乱码
  • SG-EIP-MOD-210(EtherNet/IP 转 Modbus 网关)
  • TDengine 字符串函数 CONCAT_WS 用户手册
  • SmartDV宣布其MIPI® SoundWire® I3S℠ 1.0 IP产品组合已向多家客户提供授权
  • 如何将本地文件上传至Github?【详细解释】
  • 酒店网站可以怎么做网站下雪代码
  • 【自然语言处理】预训练05:全局向量的词嵌入(GloVe)
  • 中国男女直接做的视频网站学做土建资料员的网站
  • Data engineering at Meta
  • 开创视觉方案新范式!INDEMIND四目空间智能方案让导航从追求“精准”迈向“智能协同”
  • 智慧引擎,零碳未来:安科瑞EMS3.0赋能省园区高效低碳转型
  • 在 UNS 中如何使用 Avro + Schema Registry 管理 MQTT 数据模型
  • AI辅助数据分析和学习了没?
  • 海东电子商务网站建设代做seo排名
  • 网站建设公司联系电话如何更新目录wordpress
  • 网络安全:WebShell
  • Qt历险记精心整理通用C++ 缓冲区和智能指针分享
  • SAP PP入库单浏览报表分享
  • 网站代运营合同西宁网站设计制作
  • 车牌识别接口技术深度解析:智慧交通,多场景开发者OCR API解决方案