Java 多线程

线程的创建

Java 使用 Thread 类代表线程,所有的线程对象都必须是 Thread 类或其子类的实例。Java 可以用三种方式来创建线程,如下所示:

  1. 继承 Thread 类创建线程
    一般步骤如下:
    1. 定义 Thread 类的子类,并重写该类的 run() 方法,该方法的方法体就是线程需要完成的任务,run() 方法也称为线程执行体
    2. 创建 Thread 子类的实例,也就是创建了线程对象
    3. 启动线程,即调用线程的 start() 方法
  2. 实现 Runnable 接口创建线程
    一般步骤如下:
    1. 定义 Runnable 接口的实现类,一样要重写 run() 方法,这个 run() 方法和Thread 中的 run() 方法一样是线程的执行体
    2. 创建 Runnable 实现类的实例,并用这个实例作为 Thread 的 target 来创建Thread 对象,这个 Thread 对象才是真正的线程对象
    3. 第三步依然是通过调用线程对象的 start() 方法来启动线程
  3. 使用 Callable 和 Future 创建线程
线程的终止
  • Thread.stop() 不推荐使用,它会释放所有的 monitor
  • 判断线程是否为中断状态,从而跳出循环体,实现线程的终止
    Thread.interrupt() 中断线程
    Thread.isInterrupt() 判断是否被中断
    Thread.interrupted() 判断是否被中断,并清除当前中断状态
守护线程
  • 后台默默完成一些系统性的服务,比如垃圾回收就是守护线程
  • 当一个 Java 应用内,只有守护线程时,Java 虚拟机就会自动退出
  • 在 start() 方法前,进行设置 setDaemon(True)
线程优先级
  • 通过属性设置线程的优先级
  • 高的优先级,有更大的机会抢占到资源
线程间的同步
  • synchronized
    1. 指定加锁对象
    2. 直接作用于实例方法
    3. 直接作用于静态方法
多线程

参考资料:Java 中的多线程你只要看这一篇就够了

Java 守护线程

参考资料:Java 守护线程概述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值