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

    什么是进程?

      正在运行的程序

      是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源

    多进程的意义?

      单进程的计算机只能做一件事情,而我们现在的计算机都能做多件事情:一边玩游戏(游戏进程),一边听音乐(音乐进程)

      现在的计算机都是支持多进程的,它们可以在同一时间段内执行多个任务,提高了CPU的使用率。

      问题:一边玩儿游戏,一边听音乐是同时进行的吗?(单核)

        不是,因为CPU在某一个时间点上只能做一件事情,而我们在玩儿游戏,听音乐的时候,是CPU在做着程序间的高效切换让我们感觉是同时进行的。

      这里说一个自己的比喻理解,CPU就像我们的大脑,我们边玩儿游戏,边听音乐,其实也不是同时进行的,在同一时刻,相信大家也能感觉出来,我们的大脑只在处理一件事情,打游戏或者听音乐,只不过大脑在很快的切换打游戏和听音乐这两件事情。

    什么是线程?

      在同一个进程内,我们可以执行多个任务,这每一个任务就可以看成是一个线程在跑。

      线程是进程的执行单元(执行路径)。

      是CPU调度的基本单位。

    单线程:程序只有一条执行路径

    多线程:程序有多条执行路径

    多线程的意义?

      并不是提高程序的执行速度,而是提高应用程序的使用率

      程序的执行其实都是在抢CPU资源(时间片),即CPU的执行权。

      当多个进程在抢CPU资源,而其中一个进程如果执行路径比较多,那么该进程抢到CPU执行权的几率就会比较高。

      我们不能保证哪一个线程在哪个时刻能抢到,即线程的执行具有随机性

  • 相关阅读:
    异构网络中的并行传输问题
    如何编程实现快速获取一个整型数中的bit流中1的个数
    对单例模式的一个简单思考
    OsgEearh 中的 FeatureEditor的实现原理
    关于在osgearth 中 出现 arial.ttf : file not handled 的问题
    Qt 中 this->size() this->rect() event->size() 三者差异
    Qt 中QPainter 使用中出现的问题
    对c语言中static函数的理解
    对声明和定义的理解
    个人对头文件的理解
  • 原文地址:https://www.cnblogs.com/chen-cai/p/9751095.html
Copyright © 2011-2022 走看看