• (一)进程与线程


    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

    做一个优秀的程序媛
  • 相关阅读:
    使用 VBRichClient 库
    提取文件夹目录的办法
    编程语言转换
    解决linux服务器上matplotlib中文显示乱码问题
    动态规划 53:Maximum Subarray,152:Maximum Subarray,266. Palindrome Permutation 回文全排列
    动态规划:494,576
    ResourceExhaustedError 解决方案
    周赛138场
    leetcode 115
    leetcode 372
  • 原文地址:https://www.cnblogs.com/oytt/p/13101005.html
Copyright © 2020-2023  润新知