• 【进程与线程】进程与线程 Q&A


    进程与线程常见知识点:

    1、什么是进程、线程,有什么区别?

    进程是资源(CPU、内存等)分配的基本单位,线程是CPU调度和分配的基本单位程序执行的最小单位)。同一时间,如果CPU是单核,只有一个进程在执行,所谓的并发执行,也是顺序执行,只不过由于切换速度太快,你以为这些进程在同步执行而已。多核CPU可以司一时间点有多个进程在执行。

    2、多进程、多线程的优缺点

    说明:

    一个进程由进程控制块、数据段、代码段组成,进程本身不可以运行程序,而是像一个容器一样,先创建出一个主线程,分配给主线程一定的系统资源,这时候就可以在主线程开始实现各种功能。当我们需要实现更复杂的功能时,可以在主线程里创建多个子线程,多个线程在同一个进程里,利用这个进程所拥有的系统资源合作完成某些功能。
    优缺点:

    1)一个进程死了不影响其他进程,一个线程崩溃很可能影响到它本身所处的整个进程。

    2) 创建多进程的系统花销大于创建多线程。

    3)多进程通讯因为需要跨越进程边界,不适合大量数据的传送,适合小数据或者密集数据的传送。多线程无需跨越进程边界,适合各线程间大量数据的传送。并且多线程可以共享同一进程里的共享内存和变量。

    3、什么时候用进程,什么时候用线程

    1)创建和销毁较频繁使用线程,因为创建进程花销大。

    2)需要大量数据传送使用线程,因为多线程切换速度快,不需要跨越进程边界

    3)需要更稳定安全时,适合选择进程;需要速度时,选择线程更好。

    4)多进程可以使用在多机分布式系统,需要扩展到其他机器上,使用多进程。

    5)多线程适用于多核处理机。

    4、多进程、多线程同步 (通讯) 的方法

    进程间通讯:
    (1)有名管道无名管道 (2) 信号 (3) 共享内存 (4) 队列 (5) 信号量 (6) socket

    线程通讯 (锁) :
    (1) 信号量(2) 读锁 (3) 条件变量 (4) 锁 (5) 自旋锁

  • 相关阅读:
    全国各区县日照时长数据,逐月数据均有!
    可视化学习:如何使用噪声生成纹理
    华为OD机考算法题:最远足迹
    Java编程案例:买飞机票
    文本生成系列之retrieval augmentation(进阶篇Atlas)
    2、Flowable基础表结构
    Scrapy:Python中高效的网络爬虫框架
    原型原型链面试题
    【Kubernetes】基于K8S & SpringCloud OpenFeign的一种微服务构建模式
    I2C调试问题经验总结
  • 原文地址:https://blog.csdn.net/Ivan804638781/article/details/134258458