【C/C++多线程编程之二】pthread简介
多线程编程之pthread简介
Pthread是 POSIX threads 的简称,是POSIX的线程标准。POSIX是可移植操作系统接口
(Portable Operating System Interface)的简称,其定义了操作系统的标准接口,旨在获得源代码级别的软件可移植性。Pthread是学习多线程的绝佳线程库,其API命名方式同一般C/C++代码相同,易于编程与理解。
1.线程库选择的疑惑:
Pthread只是C/C++支持的多线程库中的一个,其他还有openMP,Boost,甚至WIN API等众多库。学习多线程编程,不必纠结于选哪个库,如同学习C/C++时不要纠结于使用哪个编译器,专注于学习多线程的原理才是王道。
2. 线程与进程:
进程是一个具有独立功能程序的运行实体,如上节的示例程序,运行时便产生一个进程;通常一个进程包含一个或多个线程。
普通C程序多是只含有一个线程的进程,上节的示例程序包含线程1与线程2,故示例程序是多线程的进程。
线程与进程都是操作系统的概念。不同进程之间相互独立,同一进程的线程共享该进程的地址空间及其他资源。
线程与进程关系如下图:
3.多线程的优势:
- 提高应用程序的响应速度:相比单线程程序,多线程程序不必等待其他线程完成就可以开始另一个线程。
- 有效使用多处理器,提高CPU利用率:多线程程序能很好的使用多处理器,提高运行速度。
- 节省系统资源: 处理同步任务时,使用两个线程比使用两个进程节省大量的系统资源。
来自 <https://blog.csdn.net/lovecodeless/article/details/23673965>
【C/C++多线程编程之二】pthread简介相关推荐
- Pthread多线程编程之查看Pthread版本的方法
Pthread多线程编程之查看Pthread版本的方法: getconf GNU_LIBPTHREAD_VERSION [root@localhost Workspace]# getconf GNU_ ...
- 【C/C++多线程编程之八】pthread条件变量
多线程编程之条件变量 Pthread是 POSIX threads 的简称,是POSIX的线程标准. 互斥机制,包括互斥量[C/C++多线程编程之六]pthread互斥量,信号量[C/C++多线程编程 ...
- 【C/C++多线程编程之七】pthread信号量
多线程编程之信号量 Pthread是 POSIX threads 的简称,是POSIX的线程标准. 互斥量用来处理一个共享资源的同步访问问题,当有多个共享资源时,就需要用到信号量机制. 信号量机制用于 ...
- 【C/C++多线程编程之六】pthread互斥量
多线程编程之线程同步互斥量 Pthread是 POSIX threads 的简称,是POSIX的线程标准. Pthread线程同步指多个线程协调地,有序地同步使用共享资源.[C/C++多线程编程之五] ...
- 多线程编程之七:pthread条件变量
###Date: 2017/11/14 转载自:http://blog.csdn.net/lovecodeless/article/details/24929273 Pthread是 POSIX t ...
- C++ 多线程编程(二):pthread的基本使用
在C++开发中,原生的线程库主要有两个,一个是C++11提供的<thread>(std::thread类),另一个是Linux下的<pthread.h>(p_thread类), ...
- 【C/C++多线程编程之五】pthread线程深入理解
多线程编程之pthread线程深入理解 Pthread是 POSIX threads 的简称,是POSIX的线程标准. 前几篇博客已经能给你初步的多线程概念,在进一步学习线程同步等多线程核心知识之前, ...
- 多线程编程之二——MFC中的多线程开发
五.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消息机制,通常 ...
- APUE学习之多线程编程(二):线程同步
为了保证临界资源的安全性和可靠性,线程不得不使用锁,同一时间只允许一个或几个线程访问变量.常用的锁有互斥量,读写锁,条件变量 一.互斥量 互斥量是用pthread_mutex_t数据类型表示的,在使用 ...
最新文章
- linux系统管理必备知识之关机命令
- html简单的图片切换js,一分钟让你学会如何使用js切换图片
- python如何提交作业_玛雅截稿作业提交python命令
- 211计算机实力末尾的学校,实力最弱的十所985大学是哪几所?选择末尾985好还是选211好?...
- unity 常用函数
- 语音识别学习日志 2019-7-14 语音识别基础知识准备3 {Kmean算法分析与HMM(Hidden Markov Model)模型}
- ECMAScript 6 之 let 和 const 命令
- pandas保存为excel,同时设置保存的excel的样式
- 代码实现:输入某年某月某日,判断这一天是这一年的第几天?
- 超cool的firefox插件之PicLens
- [Flink] Flink的应用场景
- 拓端tecdat|R语言动态图可视化:如何、创建具有精美动画的图
- c++ 检查远程主机端口_漏洞通告:Windows RDP服务远程代码执行漏洞通告(CVE-2019-0708)...
- LabView学习笔记——简易入门AND初级实战项目(计算器)
- 操作系统实验一:父子进程通信
- 边际递减,边际成本,边际收益,边际效益
- Linux可以打开cdr文件吗,CDR是什么格式
- 多因子模型matlab,【干货】不可不知的N种量化策略模型——量化因子
- 交通运输大数据发展特点、政策、应用及趋势 | 交通运输部科学研究院黄莉莉
- 半加器——Verilog HDL语言
热门文章
- anyproxy学习4-Linux(Centos)搭建anyproxy环境
- linux下,MySQL默认的数据文档存储目录为/var/lib/mysql。
- PHP服务器环境打开配置文件
- JSON 常量详情参考 (内含对中文不转义的参数)
- Linux I/O模型
- Surviving the Release Version
- 掌握 Ajax,第 8 部分: 在请求和响应中使用 XML
- 有特殊步长适应的自适应差分脉码调制语音编码系统
- TensorFlow 中文文档 介绍
- 记第二期“研途同行“研究生论坛《出国交流经验分享》