zoukankan      html  css  js  c++  java
  • 进程与线程

    定义:

    • 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位(可以独立运行的)
    • 线程:是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,一个线程可以创建和撤销另一个线程

    区别:

    • 一个线程属于一个进程,而一个进程可以拥有多个线程 , 线程是进程工作的最小单位
    • 一个进程会分配一个地址空间,进程和进程之间不共享地址空间,即:不共享内存
    • 同一个进程下的不同的多个线程,共享父级进程的地址空间
    • 线程在执行过程中,需要协作同步,不同进程的线程要利用消息通信的办法实现同步
    • 线程作为调度和分配的基本单位,进程作为拥有资源的基本单位

    进程优点:

    • 每个进程相互独立,不影响主进程的稳定性,子进程崩溃不影响其他进程
    • 通过这增加CPU,就可以扩充性能
    • 可以尽量减少线程加锁与解锁的影响,极大的提高了性能

    进程缺点:

    • 逻辑复杂,需要与主程序交互
    • 多进程调度开销大

    线程优点:

    • 程序逻辑和控制方式简单
    • 所有线程可以直接共享内存和变量等
    • 线程方式消耗的总资源比进程少

    线程缺点:

    • 每个线程与主程序公用地址空间,最大内存地址受限
    • 线程之间的同步和加锁不易控制
    • 一个线程的崩溃可能影响整个程序的稳定性
     
  • 相关阅读:
    [LeetCode 049] Group Anagrams
    [LeetCode 033] Search in Rotated Sorted Array
    [LeetCode 024] Swap Nodes in Pairs
    [LeetCode 016] 3Sum Closest
    [LeetCode 015] 3Sum
    [LeetCode 013] Roman to Integer
    [LeetCode 008] String to Integer (atoi)
    [LeetCode 007] Reverse Integer
    第四课:文件操作【解密】
    第三课:文件操作【逐步浅入,深入加解法】
  • 原文地址:https://www.cnblogs.com/CesareZhang/p/12061813.html
Copyright © 2011-2022 走看看