zoukankan      html  css  js  c++  java
  • 线程和进程的关系

    在多个CPU的主机上,线程是可以同时执行的。

    多线程对于多进程的优点:

    1、在多进程的情况下,每个进程都有自己的地址空间。而在多线程情况下,同一进程内的线程共享进程的地址空间,

    因此,创建一个新的进程要耗费时间来为其分配系统资源,而创建一个新的线程花费的时间要少得多。

    2、在系统调度方面,由于进程拥有独立的地址空间,而线程共享地址空间。线程的切换速度要远远快过进程间的切换速度。

    3、在通信机制方面,进程间的数据空间相互独立,彼此通信要以专门的方式进行通信,通信时必须要经过操作系统。同一进程内的线程共享数据空间,

    一个线程的数据可以直接提供给其他线程,不必经过操作系统,因此线程间的通信更加方便和省时。

    4、在图像界面程序中,如果有一个非常耗时的操作,他会导致其他操作不能进行而等待这个操作。此时界面响应用户操作的速度会变得非常慢。

    多线程可以将这个耗时的操作由一个单独的线程来完成。这个线程在用完操作系统分配给他的时间片后,让出CPU,这样其他操作便有机会执行了。

    5、可以提高多处理器的效率。现在计算机都是采用多核技术,在这种情况下,可以让多个线程在不同的处理器上同时运行,从而大大提高程序执行速度,因此

    多线程更能发挥硬件的性能。

    6、改善程序的结构,对于要处理多个命令的程序,可以将每个指令的处理设计成一个线程,从而避免设计成大程序时造成的程序结构复杂。

    -------------------------------------------

    虽然线程在进程内部共享地址空间,打开的文件描述符等资源。但是线程也有其私有的数据信息,包括:

    1、线程号

    2、寄存器

    3、堆栈

    4、信号掩码

    5、优先级

    6、线程私有的存储空间。

  • 相关阅读:
    C++ Primer注意事项11_运算符重载_算术/关系运算符_下标运算符
    android最新的工具DateHelper
    ssh否password登陆server
    atitit.设计模式(2) -----查询方式/ command 总结
    采用Eclipse中间Maven构建Web项目错误(一)
    dm8148 jpeg编解码器测试
    C++ 结构体和类的区别
    C++ const
    C++中的inline函数
    C++ 模板类demo
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/6428706.html
Copyright © 2011-2022 走看看