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


    1.进程
    是一个程序的运行状态和资源占用【cpu】情况的描述
    进程是一个程序的动态过程,指的是从代码加载到执行完毕的过程

    进程的特点
    a.独立性:不同的进程之间是相互独立的,互不影响,相互之间资源不共享
    b.动态性:进程在系统中并不是静止不动的,而是一直处于动态
    c.并发性:多个进行可以在单个处理器上同时启动,并且互不影响

    多进程:一个操作系统上可以运行多个应用程序

    2.线程
    是进程的组成部分,一个进程可以有多个线程,每个线程去处理一个特定的子任务
    例如:打开酷狗音乐----->启动了一个进程
    播放歌曲:———>线程1
    刷新歌词:------>线程2
    播放歌曲和刷新歌词是同时进行,这两个线程并发的

    线程的执行原理:线程的执行其实是抢占式的,多个线程在同一个进程中并发执行,其实就是不同的线程快速在切换【cpu快速的在不同的线程之间切换,相当于是线程在争抢cpu时间片】

    多线程:在一个进程中,多个线程可以争抢式的执行,不同线程之间是资源共享的

    应用:一个浏览器可以同时下载多张图片和多个视频
    一个服务器可以同时处理多个用户请求


    问题:为什么使用多线程编程,而不是多进程?【多线程和多进程各自的特点】
    a.一个程序运行后至少要有一个进程
    b.一个进程可以包含多个线程,但是至少要有一个线程,否则这个进程是没有任何意义的
    c.进程间不能资源共享,但是线程之间是可以资源共享的
    d.系统创建进程需要为该进程重新分配系统空间,而创建线程则相对容易的多,使用多线程比多进程效率更高
    e.Java中内置了多线程编程,而没有多进程

  • 相关阅读:
    【Kafka】《Kafka权威指南》——从Kafka读取数据
    【Kafka】《Kafka权威指南》——分区partition
    【Kafka】《Kafka权威指南》——写数据
    【Kafka】《Kafka权威指南》入门
    六大设计原则
    EXCEPTION_ACCESS_VIOLATION(0xc0000005)
    属性文件——Java&Spring
    Maven——向Maven本地仓库中手动添加依赖包(ps:ojdbc.jar)
    使用Python轻松批量压缩图片
    Nginx常用命令,解决你日常运维的烦恼
  • 原文地址:https://www.cnblogs.com/lsp-lsp/p/7344259.html
Copyright © 2011-2022 走看看