Linux线程编程

Linux线程编程初步

一些历史背景

  1. Linux间接起源于Unix,而Linux诞生时并不存在 "线程"的概念。
  2. 在20世纪90年代线程才流行起来,POSIX Thread标准于 1995年确立。
  3. Unix中引入 Thread 之后,大量函数被重写,信号机制也变得复杂。
  4. 2005年之后,处理器生产厂商向超线程和多核架构靠拢。
  5. 超线程是英特尔开发出来的一项技术,使得单个处理器可以像两个逻辑处理器那样运行,这样单个处理器可以并行执行线程。

一些常见的概念

物理处理器:

安装在主机上的真实的处理器硬件。

逻辑处理器:

逻辑处理器与超线程技术相关。

        不支持超线程:逻辑处理器的数量等于核心数的数量

        支持超线程:  逻辑处理器的数量是处理器核心数的两倍

核心数:即多核处理器中的内核数量

        通过工艺手段将多个完整的 CPU 塞进一个处理器封装中(每一个 CPU 就是一个核)

线程与进程的关系

进程:

应用程序的一次加载执行(系统进行资源分配的基本单位)

线程:

进程中的程序执行流

  1. 一个进程中可以存在多个线程(至少存在一个线程)
  2. 每个线程执行不同的任务(多个线程可并行执行)
  3. 同一个进程中的多个线程共享进程的系统资源        

Linux线程编程_第1张图片

创建线程并不难,难的是创建的这些线程会和主线程一起往下执行。

你可能感兴趣的:(#,linux,线程)