zoukankan      html  css  js  c++  java
  • 线程基础知识

    线程调度方式:

    • 分时调度

    平均分配每个线程占用 CPU 的时间。

    • 抢占式调度

    优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个线程执行,Java使用的为抢占式调度。

    多线程的内存解析:

    多线程执行时,在栈内存中,其实每一个执行线程都有一片自己所属的栈内存空间;

    线程的栈内存是运行start()方法时创建的(备注:每执行一次start()方法都会创建一个栈空间),并且栈内存都是线程私有的;

    当执行线程的任务结束了,线程自动在栈内存中释放了。但是当所有的执行线程都结束了,那么进程就结束了。

    图解:

    Runnable、Callable接口的方式创建线程区别:

    Callble:能有返回值,能抛出异常;

    使用接口Runnable 、Callable 实现接口的好处:

    线程子类实现了 Runnable 或 Callable接口,还可以继承其他类;
    更加的符合面向对象编程思想,线程对象线程任务分离、实现解耦;

    继承 Thread 类实现线程解析:

    优点:
    编码相对于实现接口简单一些;

    缺点:
    线程类已经继承了Thread类,所以不能再继承其他父类;
    继承Thread类,线程对象和线程任务耦合在一起。一旦创建Thread类的子类对象,既是线程对象,又有线程任务。

    线程生命周期图:

  • 相关阅读:
    4. Postman测试集的批量执行(转)
    3. Postman Tests断言(转)
    2. Postman发送各种格式请求的方法
    1. Postman的安装
    2. Django创建项目
    Redis学习笔记(一)
    Oracle连接查询
    Redis学习笔记(五)- 数据类型之set类型
    Redis学习笔记(四)-数据类型之list类型
    PL/SQL实现JAVA中的split()方法的小例子
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/11668306.html
Copyright © 2011-2022 走看看