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

    线程调度方式:

    • 分时调度

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

    • 抢占式调度

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

    多线程的内存解析:

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

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

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

    图解:

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

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

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

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

    继承 Thread 类实现线程解析:

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

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

    线程生命周期图:

  • 相关阅读:
    nginx正则配置解释和fastadmin
    Centos7中systemctl命令详解
    layer的iframe层的传参和回参
    centOS下jenkins
    centos下nginx安装和配置
    python文件目录练习题【一】
    python正则模块re使用案例
    python字符串常用方法
    Swoole的多进程模块
    swoole学习
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/11668306.html
Copyright © 2011-2022 走看看