前置知識—進程和線程

前置知識—進程和線程

進程(任務)

what ?

In computing, a process is the instance of a computer program that is being executed. It contains the program code and its activity. Depending on the operating system (OS), a process may be made up of multiple threads of execution that execute instructions concurrently瀏覽器

  • 是被執行的程序
  • 進程中有源代碼和進程的活躍度
  • 根據不一樣的操做系統,一個進程或許由多個線程組成,多線程是爲了併發的執行命。
    A list of processes as displayed by htop

一個進程由什麼組成?

  • An image (與程序相關聯的可執行機器代碼)
  • 內存
  • Operating system descriptors分配的資源
  • 安全屬性
  • CPU的上下文

由於安全性和可靠性,現代操做系統不容許進程之間直接通信,採用了一種嚴格的通信方法叫作 IPC (Inter-process communication)。安全

多任務的操做系統存在多個進程同時執行,單核CPU一次性只能執行一個進程,CPU進行切換任務,沒必要等待上一個任務執行結束。多線程

一般,程序中的主程序只有單個進程和多個子進程。架構

線程

What ?

In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.[1] The implementation of threads and processes differs between operating systems, but in most cases a thread is a component of a process. Multiple threads can exist within one process, executing concurrently and sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variablesat any given time.併發

  • 線程是最小的一系列程序指令。
  • 線程是進程中的一個部分。
  • 多線程能夠存在一個進程中,併發執行和共享資源。

img

進程 vs 線程

  • 進程之間是獨立的,而線程是進程的子集
  • 進程中狀態信息比線程多,然而一個進程中的多線程共享着和進程同樣的狀態信息
  • 進程有獨立的地址空間,線程只是分享進行的地址空間
  • 進程通信依據系統提供的IPC方法
  • 上下文切換而言,線程切換比進程快

下一篇文章

瀏覽器架構-原理篇post

相關文章
相關標籤/搜索