线程与进程(Wiki手翻)

线程(Thread)多线程

  在计算机科学中,一个线程是可以被一个调度器单独管理的最小的程序片断。在不一样的操做系统中,线程与进程的实现不尽相同,但大多数状况下,线程是进程的组成部分。多个线程可以在一个进程中存在,并同时(concurrently)执行和共享资源如内存,然而不一样的进程不共享这些资源。尤为是,在一个进程中的线程共享着执行代码和变量的值。架构

单处理器与多处理器系统负载均衡

  单处理器系统通常经过时间分片(time slicing)来实现多线程:CPU切换着不一样的软件线程(software thread)。这种上下文切换通常足够快,因此用户感知上线程或任务是并行运行着的。在多处理器的系统中,多线程能并行地运行,每一个处理器同时地执行不一样的线程;在单核超线程(多硬件线程 hardware thread)的处理器中,不一样的软件线程也能并行执行(我:这个跟处理器核心内部架构应该有关,负载均衡的过程)。操作系统

线程 vs. 进程线程

  线程与传统的多任务操做系统进程的区别有:进程

    1. 进程一般是独立的,而线程是做为进程的子集的存在;内存

    2. 进程可以比线程携带更多的状态信息,而在进程中的多个线程共享着内存和其余资源等进程状态;ci

    3. 进程拥有分开的地址空间,而线程共享着地址空间;资源

    4. 进程只能经过系统提供的进程间通讯(IPC)机制进行数据交流;多进程

    5. 在一个进程中,线程间的上下文切换一般比进程间的上下文切换要快;

进程

  进程是计算机程序执行时的一个实例(instance)。它包含程序代码和它当前的活动。在不一样的操做系统中,进程能够由许多线程并行执行而组成。

  计算机程序是一种被动的指令集,而进程就是这些指令实际的执行过程。多个进程可能与同一段程序相关;好比,对一样一段程序,运行多个实例,这经常意味着多个进程被执行了。

  多任务处理是一种容许多进程共享多处理器和其余系统资源的方法。每一个CPU一次执行单个任务。然而,多任务处理容许在每一个处理器在任务间切换而没必要等待每一个任务完成。在不一样的操做系统中,这种切换可能发生在I/O操做中,或者其余须要被切换的状况,如硬件停止(interrupt)。

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息