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

    线程调度方式:

    • 分时调度

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

    • 抢占式调度

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

    多线程的内存解析:

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

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

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

    图解:

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

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

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

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

    继承 Thread 类实现线程解析:

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

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

    线程生命周期图:

  • 相关阅读:
    jQuery validate兼容IE8写法
    JS判断input按了回车键
    jQuery on 绑定的事件触发多次
    jQuery判断键盘按下的keyCode
    javascript预览本地图片
    mysql开放远程连接
    mysql帐号,权限管理
    .htaccess语法中RewriteCond和RewriteRule意义
    javascript加密之md5加密
    加法
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/11668306.html
Copyright © 2011-2022 走看看