【SE-01】多线程-01
发布日期:2021-05-07 08:58:10 浏览次数:22 分类:精选文章

本文共 668 字,大约阅读时间需要 2 分钟。

  1. 在这里插入图片描述

  2. 一个Java应用中至少包含3个线程:main线程、gc垃圾回收线程、异常处理线程

  3. Thread类中的常见方法:

    在这里插入图片描述
    在这里插入图片描述

  4. start()方法的两个作用

    • 启用当前线程
    • 调用当前线程对象的run()
  5. 直接调用run方法并不会开启一个新的线程,会被主线程当做一个普通成员方法按照顺序执行

  6. 不能对同一个线程多次进行start(),否则会报异常

    要启动多线程必须调用start()
    在这里插入图片描述

  7. 子类重写父类的方法时,抛出的异常不能大于父类抛出的异常

    扩展:关于重写有以下要求

    • 子类与父类的同名方法必须具有相同的方法名和参数列表
    • 返回值
      • 若父类被重写方法返回值为void,则子类重写方法也返回void
      • 若父类被重写方法返回基本类型,则子类重写方法将返回相同类型
      • 若父类被重写方法返回引用类型,则子类返回的类型<=父类
    • 访问权限
      • 子类的访问权限必须大于等于父类
      • 子类不可重写父类的私有方法
    • 异常
      • 子类抛出的异常必须小于等于父类抛出的异常
    • 子类无法对父类的静态方法进行重写

在这里插入图片描述

在这里插入图片描述

  1. 若创建多个线程存在共享某些数据的情况时,最好使用实现Runnable接口的方法创建线程类(因为创建的多个线程都将Runnable对象作为构造方法的参数传入,因此也是唯一的),否则在继承Thread类的同时必须将共享数据定义为static类型
  2. 通常建议使用实现Runnable接口的方法进行创建线程类,一方面可以规避Java中单继承的局限性;另一方面,Thread底层也是实现了Runnable接口的类
    在这里插入图片描述
  3. 线程被start()之后,run()由JVM调用,什么时候调用,执行的过程控制都由操作系统调度决定
上一篇:vue实现评论发表
下一篇:vue(13):Vue.set、Vue.delete

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月11日 11时52分03秒