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

    定义:

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

    区别:

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

    进程优点:

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

    进程缺点:

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

    线程优点:

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

    线程缺点:

    • 每个线程与主程序公用地址空间,最大内存地址受限
    • 线程之间的同步和加锁不易控制
    • 一个线程的崩溃可能影响整个程序的稳定性
     
  • 相关阅读:
    Maven 集成Tomcat插件
    dubbo 序列化 问题 属性值 丢失 ArrayList 解决
    docker 中安装 FastDFS 总结
    docker 从容器中拷文件到宿主机器中
    db2 相关命令
    Webphere WAS 启动
    CKEDITOR 4.6.X 版本 插件 弹出对话框 Dialog中 表格 Table 自定义样式Style 问题
    SpringMVC JSONP JSON支持
    CKEDITOR 3.4.2中 按钮事件中 动态改变图标和title 获取按钮
    git回退到远程某个版本
  • 原文地址:https://www.cnblogs.com/CesareZhang/p/12061813.html
Copyright © 2011-2022 走看看