多线程编程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简介相关推荐

  1. Pthread多线程编程之查看Pthread版本的方法

    Pthread多线程编程之查看Pthread版本的方法: getconf GNU_LIBPTHREAD_VERSION [root@localhost Workspace]# getconf GNU_ ...

  2. 【C/C++多线程编程之八】pthread条件变量

    多线程编程之条件变量 Pthread是 POSIX threads 的简称,是POSIX的线程标准. 互斥机制,包括互斥量[C/C++多线程编程之六]pthread互斥量,信号量[C/C++多线程编程 ...

  3. 【C/C++多线程编程之七】pthread信号量

    多线程编程之信号量 Pthread是 POSIX threads 的简称,是POSIX的线程标准. 互斥量用来处理一个共享资源的同步访问问题,当有多个共享资源时,就需要用到信号量机制. 信号量机制用于 ...

  4. 【C/C++多线程编程之六】pthread互斥量

    多线程编程之线程同步互斥量 Pthread是 POSIX threads 的简称,是POSIX的线程标准. Pthread线程同步指多个线程协调地,有序地同步使用共享资源.[C/C++多线程编程之五] ...

  5. 多线程编程之七:pthread条件变量

    ###Date: 2017/11/14 转载自:http://blog.csdn.net/lovecodeless/article/details/24929273  Pthread是 POSIX t ...

  6. C++ 多线程编程(二):pthread的基本使用

    在C++开发中,原生的线程库主要有两个,一个是C++11提供的<thread>(std::thread类),另一个是Linux下的<pthread.h>(p_thread类), ...

  7. 【C/C++多线程编程之五】pthread线程深入理解

    多线程编程之pthread线程深入理解 Pthread是 POSIX threads 的简称,是POSIX的线程标准. 前几篇博客已经能给你初步的多线程概念,在进一步学习线程同步等多线程核心知识之前, ...

  8. 多线程编程之二——MFC中的多线程开发

    五.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消息机制,通常 ...

  9. APUE学习之多线程编程(二):线程同步

    为了保证临界资源的安全性和可靠性,线程不得不使用锁,同一时间只允许一个或几个线程访问变量.常用的锁有互斥量,读写锁,条件变量 一.互斥量 互斥量是用pthread_mutex_t数据类型表示的,在使用 ...

最新文章

  1. linux系统管理必备知识之关机命令
  2. html简单的图片切换js,一分钟让你学会如何使用js切换图片
  3. python如何提交作业_玛雅截稿作业提交python命令
  4. 211计算机实力末尾的学校,实力最弱的十所985大学是哪几所?选择末尾985好还是选211好?...
  5. unity 常用函数
  6. 语音识别学习日志 2019-7-14 语音识别基础知识准备3 {Kmean算法分析与HMM(Hidden Markov Model)模型}
  7. ECMAScript 6 之 let 和 const 命令
  8. pandas保存为excel,同时设置保存的excel的样式
  9. 代码实现:输入某年某月某日,判断这一天是这一年的第几天?
  10. 超cool的firefox插件之PicLens
  11. [Flink] Flink的应用场景
  12. 拓端tecdat|R语言动态图可视化:如何、创建具有精美动画的图
  13. c++ 检查远程主机端口_漏洞通告:Windows RDP服务远程代码执行漏洞通告(CVE-2019-0708)...
  14. LabView学习笔记——简易入门AND初级实战项目(计算器)
  15. 操作系统实验一:父子进程通信
  16. 边际递减,边际成本,边际收益,边际效益
  17. Linux可以打开cdr文件吗,CDR是什么格式
  18. 多因子模型matlab,【干货】不可不知的N种量化策略模型——量化因子
  19. 交通运输大数据发展特点、政策、应用及趋势 | 交通运输部科学研究院黄莉莉
  20. 半加器——Verilog HDL语言

热门文章

  1. anyproxy学习4-Linux(Centos)搭建anyproxy环境
  2. linux下,MySQL默认的数据文档存储目录为/var/lib/mysql。
  3. PHP服务器环境打开配置文件
  4. JSON 常量详情参考 (内含对中文不转义的参数)
  5. Linux I/O模型
  6. Surviving the Release Version
  7. 掌握 Ajax,第 8 部分: 在请求和响应中使用 XML
  8. 有特殊步长适应的自适应差分脉码调制语音编码系统
  9. TensorFlow 中文文档 介绍
  10. 记第二期“研途同行“研究生论坛《出国交流经验分享》