POSIX多线程概述

栏目: IT资讯 · 发布时间: 5年前

《POSIX多线程程序设计中文版》读书笔记

在计算机专用术语中,线程是指机器中连续的、顺序的属性集合。

一个UNIX进程可以理解为一个线程加上地址空间、文件描述符和其他数据。

从某种程度上讲,线程是构造异步程序的一种方法。

“进程是资源分配的最小单位,线程是 CPU 调度的最小单位”

先从舀水的 程序员 说起:三个程序员乘一艘小船出海,开始时风和日丽,过了一会儿之后暴风雨降临,当暴风雨逐渐减缓后,小船没了桅杆和帆,留下了一个小缝。小船上有食物、水、桨和一个水桶。于是他们愉快的工作:一个人划船、监视渗水的情况,其他两个人则可能去睡觉、寻找可以停靠的岛屿、查看水位情况。

空闲的程序员看到水位上升、开始用水桶舀水。当两个程序员都醒来的时候,可能同时发现了水位上升,都要去拿水桶。但只能有一个拿到水桶,而另外一个人不得不等待。

如果两个人都睡着了,而划船的人认为该舀水的时候,通常会推醒一个人而让另一个人继续睡觉。但是如果划船的人心情不好,则会大喊大叫把两个人都吵醒,让其中一个人干活的时候另一个则可以继续睡觉。

当划船的伙计累了的时候,可以唤醒其中一个接替他的工作,然后马上睡觉,直到他再次被唤醒。这样他们就可以继续旅程了。

OK ,这就是线程的模型。一个 程序员 就是一个能独立活动的实体。在这里,程序员代表 线程

舀水的桶 划船的桨 就是一次只能由一人拥有的令牌,它们可以被理解为共享数据,或是同步对象。在 Pthreads 中同步对象称为互斥量 (mutex)

轻推和喊叫 是与同步对象相关的通信机制,个体等待这些事件的发生。 Pthreads 中提供了条件变量,可以通过信号和广播来指示共享数据的状态。

术语:

异步:表明事情相互独立发生,除非有强加的依赖性。

并发:本书中是指实际上可能串行发生的事情好像同事发生一样。

之后会以程序例子的形式展示线程的应用,如如何让线程退出,如何终止一个正在运行的线程,终止线程后的清理工作等。

文末的彩蛋:

POSIX多线程概述


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Linux Device Drivers

Linux Device Drivers

Jonathan Corbet、Alessandro Rubini、Greg Kroah-Hartman / O'Reilly Media / 2005-2-17 / USD 39.95

Device drivers literally drive everything you're interested in--disks, monitors, keyboards, modems--everything outside the computer chip and memory. And writing device drivers is one of the few areas ......一起来看看 《Linux Device Drivers》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具