视频地址:

http://player.bilibili.com/player.html?aid=31289365&bvid=BV1iW411d7hd&cid=222841710&page=23

课件地址:

本章对应于书中的12.1-12.3。


我们可以通过创建很多线程来完成任务的一部分,如果要求整个任务都完成才能执行下一个任务,则要求对等线程都是可结合的,主线程就能通过phread_join来等待所有对等线程执行完毕。如果我们不需要等待整个任务都完成,此时就可以分离对等线程,让对等线程执行完毕后被自动回收。


我们之前在这里提过,如果不同进程的逻辑流在时间上是重叠的,则称它们是并发的(Concurrent),将这种现象称为并发(Concurrency)。比如进程之间通过内核完成上下文切换,使得各个进程的逻辑流在时间上是重叠的,从而使得两个进程并发执行。比如异常处理程序中,当出现异常时,会触发内核去执行异常处理程序。比如通过发送信号,可以使得在同一进程中跳转到信号处理程序中等等。

我们将使用应用级并发的应用程序称为并发程序(Concurrent Program),该类程序主要具有以下经典问题:

本章不会介绍上面的全部内容,只是给出一个大致的概念。目前有三种方法来构建并发程序:

接下来将介绍这三种并发编程方法,并尝试实现一个迭代echo服务器的并发版本。