【java多线程】Thread和Runnable

java多线程系列:

前言

前一章简单介绍了什么是进程和线程,本章将重点介绍java中的线程Thread和Runnable

Thread和Runnable简介

Thead类是JDK为我们提供的基于操作系统的线程体系统一接口(操作系统负责线程的管理)。一个Thread对象和操作系统线程关联。
Runnable接口为Thread对象提供具体的执行代码,Thread实现了Runnable的run()方法

创建线程

继承Thread类

public class MyThread extends Thread{

    @Override
    public void run() {
      //业务逻辑
    }
public static void main(String[] args) {
        Thread myThread= new MyThread();
        // 调用start()方法以后,该线程会进入ready状态
        // 操作系统会进行调度,根据调度算法线程可能会进入running状态
        // 只有线程真正进入running状态以后,CPU才会执行该线程的代码
        myThread.start();
    }
}

实现Runnable接口

public class MyThread implements Runnable{

    @Override
    public void run() {
         //业务逻辑
    }
    public static void main(String[] args) {
        Thread t = new Thread(new MyThread(),"线程1");
         t.start(); 
    }
}

线程状态

  • NEW
    线程已创建还未开始执行
  • RUNNABLE
    包括已准备就绪的线程和正在运行running的线程
  • BLOCKED
    当前线程被阻塞,等待获取监听锁
  • WAITING
    线程进入无限期等待其他线程的唤醒。以下操作会让线程进入等待状态

    Object.wait()
    Thread.join()
    LockSupport.park()

  • TIMED_WAITING
    线程进入有限期的等待,以下方法会让线程进入有限等待状态

    Thread.sleep(sleeptime)
    Object.wait(timeout)
    Thread.join(timeout)
    LockSupport.parkNanos(timeout)
    LockSupport.parkUntil(timeout)

  • TERMINATED
    线程已结束

线程状态转换
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值