(一)进程与线程

1. 基本概念:

 进程是资源分配的最小单位,线程是程序执行的最小单位。(官方说法)

    进程是系统正在运行中的一个应用程序,线程是进程之内的独立执行的一个单元执行流;

 

2.理解

  (1) 一个进程包含多个线程,一个进程的内存空间是共享的,每个线程都可以使用这些共享内存;

  (2) 一个线程使用某些共享内存时,其它线程必须等它结束,才能使用这一块内存;

       为了防止多个线程,同时读写某一块内存区域,产生了“互斥锁"的概念;

  (3)但某些内存区域,可以给固定数目的线程同时使用;

        ”信号量", 用来保证多个线程不会互相冲突。

     就是在门口挂n把钥匙。进去的人就取一把钥匙,出来时再把钥匙挂回原处。

     后到的人发现钥匙架空了,就知道必须在门口排队等着了。

  (4)

    以多进程形式,允许多个任务同时运行;

    以多线程形式,允许单个任务分成不同的部分运行;

    提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。

 

 3.进程与线程各有什么特点

进程

  优点:

      每个进程相互独立,子程序崩溃也不影响主程序的稳定性;

  缺点:

      创建销毁比较麻烦,进程间数据的共享麻烦,并且消耗的资源比较多

 

线程

  优点:

      (1)各线程之间可以并发执行;

      (2)各线程之间可以共享资源

  缺点:

      (1)由于内存共享,所以导致了一个线程的崩溃会导致整个进程的所有线程崩溃;

      (2)编程复杂以及调试困难,线程执行的随机性可能导致逻辑混乱,甚至发生死锁现象;

 

 

 

 

 

 

 

 

 

 

看到几篇不错的博文分享一下:

http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html

https://www.cnblogs.com/coder-programming/p/10595804.html

http://www.kokojia.com/article/20845.html

posted @ 2020-06-15 09:41  欧阳图图的少年成长记  阅读(157)  评论(0编辑  收藏  举报