zoukankan      html  css  js  c++  java
  • 多线程编程(二)--进程&&线程

               看完上篇博文的介绍后,大家应该大概了解进程和线程的由来。有了这样一个背景我们进一步来看一下线程和进程。

     

           引入进程:

           进程能够提高系统的并发性。提高CPU的使用率,从而提高程序的性能。在曾经单道操作系统中,一次仅仅运行一个程序,这样运行效率非常低,资源得不到充分的利用。

    所以后来多道操作系统出现了,因为多道操作系统一次并发运行非常多程序,但管理起来非常麻烦。

    因此进程的概念就被提出来了,它是一个程序动态运行表现,并且进程中包括了程序的资源,并管理程序怎样去使用资源。能够说进程是程序的一种动态表现形式。

     

           引入线程:

           进程与进程之间的通信是十分慢的,由于进程管理分配非常多资源。所以转换起来非常慢。

    就这样,线程产生了,它是比进程更小的单位,一个进程中仅仅要有一个或多个线程,那么每一个线程之间的通信相对进程而言则快了非常多。由于线程仅仅涉及到CPU的资源分配。

    一个进程中的线程是能够相互通信的,但不同进程之间的线程是不能相互通信的。

     

    进程

             是并发运行的程序在运行过程中分配和管理资源的基本单位,是一个动态概念。竞争计算机系统资源的基本单位。进程至少有5中基本状态:初始态。运行态,等待状态,就绪状态,终止状态。

     

    线程

            线程是进程的一部分,一个没有线程的进程能够看做是单线程的。

    线程有时又被称为轻权进程或者是轻量级进程,也是CPU调度的一个基本单位。

     

    多线程

            它同意在程序中并发运行多个指令流,每一个指令流都称为一个线程。多线程进制下的线程彼此间互相独立,比較easy共享数据,通过兵法运行的方式来提高程序的效率和性能。

     

    线程VS进程

    1、线程的划分尺度小于进程,线程隶属于某个进程。

    2、进程是程序的一种动态形式,是CPU、内存等资源占用的基本单位。而线程是不能独立的占有这些资源的。

    3、进程之间相互独立,通信比較困难,而线程之间共享一块内存区域,通信比較方便。

    4、进程在运行过程中,包括比較固定的入口、运行顺序和出口。而线程的这些过程会被应用程序所控制。

  • 相关阅读:
    Largest Rectangle in Histogram
    Valid Sudoku
    Set Matrix Zeroes
    Unique Paths
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Path Sum II
    Path Sum
    Validate Binary Search Tree
    新手程序员 e
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6999348.html
Copyright © 2011-2022 走看看