zoukankan      html  css  js  c++  java
  • 深入理解计算机系统——第12章:基于线程的并发编程

    多进程:每个流单独的进程。私有的地址空间,共享数据困难。

    IO多路复用:所有流在一个进程上,共享地址空间,利用IO多路复用技术来调用逻辑流。

    线程:

    (1)线程就是运行在进程的上下文中的逻辑流,线程由内核自动调度。

    (2)线程都有自己的线程上下文,包括线程ID,线程栈,栈指针,程序计数器,通用目的寄存器,条件码。

    (3)所有运行在一个进程的线程都共有虚拟地址空间。

    线程是进程和IO多路复用的结合:

    (1)同进程一样,线程由内核自动调度,内核识别线程ID。

    (2)同IO一样,线程运行在同一进程的上下文中,共享进程虚拟地址空间的整个内容,包括堆,代码,数据,共享库,打开文件。

    12.3.1 线程执行模型:

    (1)从某一时刻主线程创建一个对等线程,那么从这个时候开始,两个线程并发的执行。

    线程与进程的不同:

    (2)线程的相互之间的切换要快得多。

    (3)线程不是和进程一样按照父子进程来组织的,线程创建的是对等线程。

    线程池:

    (4)同一个进程相关的线程组成一个对等的线程池。

    (5)一个线程可以杀死它的任何的对等线程,也可以等待它的终止。每个对等线程之间可以共享数据。

    12.3.2 Posix线程

    12.3.3 创建线程

    (1)pthread_create函数

    (2)pthread_self函数

    12.3.4 终止线程

    (1)当顶层的线程例程返回时,会隐式的终止

    (2)pthread_exit函数,显式的终止

    (3)某个对等线程调用unix的exit函数,则终止进程以及与进程相关的所有线程。

    (4)pthread_cancel函数

    12.3.5 回收已终止线程资源

    12.3.6 分离线程

    12.3.7 初始化线程

  • 相关阅读:
    js json与字符串相互转换
    Web 加入favicon
    JS 深拷贝
    C# 读取配置文件
    设计模式之抽象工厂模式
    设计模式之工厂方法的隐藏
    设计模式之工厂方法的重载
    设计模式之工厂方法配置文件与反射
    C#设计模式之工厂方法模式
    jq解析json文件
  • 原文地址:https://www.cnblogs.com/yanliang12138/p/4792269.html
Copyright © 2011-2022 走看看