0

Image Description

荆文征

Zhidu Inc.


你好,再见

锁,在多个线程中一起访问同一个属性,如果不加锁的话,会导致数据出现错误。

举一个最简单的例子,又一个 int 类型的公共变量 值为 0,2个线程同时访问他,都做10次累加。那么极有可能会出现,这个值不等于20的情况。
这种时候就需要锁这种东西,我觉的锁,其实和信号量还是挺像的,感觉像信号量的进阶?

在共享内存多处理器体系结构中,可以使用线程来实现并行性。从历史上看,硬件供应商已经实现了自己的专有版本的线程,使得可移植性成为软件开发人员的关注点。对于UNIX系统,标准化的C语言线程编程接口已由IEEE POSIX 1003.1c标准规定。坚持这个标准的实现被称为POSIX线程或Pthreads。

本教程首先介绍使用Pthread的概念,动机和设计注意事项。然后介绍Pthreads API中三大类例程中的每一个:线程管理,互斥变量和条件变量。示例代码用于演示如何使用新Pthreads程序员所需的大部分Pthreads例程。本教程最后讨论了LLNL细节以及如何将MPI与pthreads混合。实验室练习还包括许多示例代码(C语言)。

级别/先决条件:本教程非常适合那些刚接触pthread的并行编程人员。在C中的并行编程的基本理解是必需的。对于那些不太熟悉并行编程的人来说,EC3500:并行计算入门所涉及的 内容将会很有帮助。

我也已经学习了挺久了,那么接下来我会进行一些总结性的记录。

线程,就是进程中的一个动作,比如者活着是进程,那么吃饭就算是线程,当然跑步也算线程。
线程有几个属性,
CancelState 规定了,这个线程是否可以取消,比如跳楼,这个进程就不能返回。再比如说,坐公交车是可以随时不做的。但是这就牵涉到了怎么取消了
CancelType,一种是 deffered延期的,啥意思呢? 前面不是说了 坐公交车可以取消。那么这个 type的意思就是,你会在下一站下车,而不是想反回就返回的。另一种是 async 这种就比较暴躁了… 说要取消,立马取消!“老子才不管到没到站!给老子停车!!!! 行! 不听是吧!我跳!车!”
specific,线程中的私有公共变量,在同一个线程中可以获取到的值,需要使用 pthread_key_t 来存储。大概的意思就是,比如跑步的时候 终点在哪儿,无论在跑步这个线程任何时间都是知道的,但是做饭这个线程就不需要知道这个 终点。
schedparam,

为了学习IOS中的多线程,开始研究线程。但是感觉一开始就学习IOS的线程的话,很难理解,所以学习了Pthreads。

POSIX Threads Programming

Author: Blaise Barney,Lawrence Livemore National Laboratory

Abstract

在共享内存多处理机架构中,线程可以用来实现并行。从历史来说,硬件供应商实现了他们各自的线程版本,使移植成为了软件开发人员关系的问题。在UNXI系统中,一个标准化C语言的线程API已经有了 IEEE POSIX 1003.1c ,坚持这个标准实现成为POSIX线程,或者 Pthreads.
本教程首先介绍 Pthread的概念,动机和设计注意事项。然后介绍 Pthreads API中三个主要类的历程:线程管理,互斥变量和条件变量。示例代码是为了让新的使用Pthreads的程序员知道如何使用Pythreads。本教程最后讨论了 LLNL 细节以及如何将MPI与Pthreads混合
学习这篇教程的先决条件:本教程非常适合那些刚接触Pthread的并行编程人员。在C中的并行编程基本理解是必需的。对于那些不太熟悉并行变成的人来说,EC3500:并行计算入门所设计的内容将很有帮助。