• 走过操作系统的世界来到Java面前


    一、完成一个任务需要什么?

    时间 + 资源 + 处理能力

    时间就是时间。

    资源就是资源。

    处理能力就是能够利用时间和资源完成任务的主体。

    二、关于操作系统

    处理能力就是cpu。

    资源就是存储。

    时间就是cpu的时间。

    cpu的处理能力:很快很快。

    cpu需要获取存储资源:这个过程我们称之为IO,IO很快,但是和cpu相比,它很慢,很慢。

    所以,

    就像一个思想快于嘴巴的人,想要表达的时候,通常都会加上肢体语言,比如手势,身体。

    它可以同时处理这许多方面的动作。

    三、关于任务

    任务在操作系统的世界里,通常对应一个进程,这是cpu处理能力的基本单位。

    进程执行期间,需要IO,我们说过IO相对于cpu的处理能力来说,很慢,所以,如果只有一个进程,那么它IO的时候,cpu只能闲着。

    闲着就是浪费。

    这不符合我们的期望。

    所以。

    我们有了多进程,多任务同时执行。

    这样,一个进程IO的时候,就可以让渡cpu时间给其它的进程,等待IO完成,然后重新等待cpu时间继续执行。

    当然,我们也需要知悉,这个同时并不是所谓的同时。

    四、关于时间

    时间是进程执行的时间。

    时间也是cpu输出计算能力的时间。

    多进程之间需要让渡时间,那么就需要有个最基本的时间单位。

    我们称之为时间碎片。

    五、关于进程

    不同进程之间相互独立。

    各自加载各自的资源。

    各自利用分配给自己的cpu时间碎片来执行任务。

    我们知道,

    一个任务可大可小,有复杂有简单。

    按照我们通常思维。

    此时,通常会有分治。

    是的,进程会对任务进行分解,一个大任务分解成很多的小任务。

    而执行这些小任务的基本单位,就是线程。

    六、关于线程

    线程是计算机世界里最基本的执行单元。

    我们说过,进程之间会有时间碎片的调度。

    同样,在一个进程内部,同样有不同线程之间的调度。

    线程对于进程来说,内部资源共享。

    所以线程之间,需求的是协作。

    线程,也是系统的线程。

    七、关于JAVA

    Java是一个跨平台的语言。

    所以能跨平台,是因为它有一个统一的运行空间。

    自己创造的统一的运行空间,Java虚拟机-JVM。

    虚拟机构造了自己的内存模型,

    也有线程。

    当然,这个线程不同于系统中的线程。

    Java程序的任务调度,皆是基于Java的线程调度。

    八、关于Java线程

    JVM内存模型中最近本的连个单元,堆和栈。

    堆是共享堆,栈是线程栈。

    线程栈也是线程私有栈。

    好了,到此为止,入门完毕。

  • 相关阅读:
    SSL原理
    花不是玫瑰的全部
    sqlserver2008数据类型说明
    js识别半角字符的正则表达式
    js全角字符转半角字符
    java 全角字符转半角
    MySQL数据目录结构
    git使用
    [iOS]MVVM-框架介绍
    圆形进度条
  • 原文地址:https://www.cnblogs.com/niejunlei/p/12861432.html
Copyright © 2020-2023  润新知