并发编程1 java线程简要

线程状态

基本划分Thread.State结合描述
NewNEW新建描述
RunnableRUNNABLE就绪描述
Running运行中描述
BlockedBLOCKED阻塞等待临界区的锁synchronize而阻塞
WAITING等待进入了锁,需要等待其他线程执行一些操作,时间不确定
TIMED_WAITING超时等待进入了锁,需要等待其他线程执行一些操作,时间确定
DeadTERMINATED终止描述

线程状态转化

线程状态机

线程有关API

Tread类

  • 静态方法
    • Thread currentThread() :获得当前线程的引用。获得当前线程后对其进行操作。
    • boolean interrupted() :测试当前线程是否已经中断(将中断状态标记为false)。
  • 实例方法
    • Thread.State getState() :返回该线程的状态。
    • boolean isAlive() :测试线程是否处于活动状态。
    • void run() :线程启动后执行的方法。
    • void start():使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
    • void sleep(long millis) :休眠指定时间
    • void yield() :暂停当前正在执行的线程对象,并执行其他线程。意义不太大
    • void join() :等待该线程终止。
    • void join(long millis) :等待该线程终止的时间最长为 millis 毫秒。
    • void interrupt() :中断线程(将中断状态标记为true)。
    • boolean isInterrupted():测试线程是否已经中断(不改中断标记)。
  • interrupt和InterruptedException,中断机制详细内容见:https://editor.csdn.net/md/?articleId=115570415
    • 方法中有声明InterruptedException异常时,使用interrupt方法会导致InterruptedException异常
      • 例如:sleep,join,wait

Object类

  • 实例方法
    • notify()
    • notifyAll()
    • wait()
    • wait(long millis)

创建线程的方式

  • 继承Thread类,单继承
  • 实现Runnable接口,克服单继承的缺点
  • 使用Callable和Future创建线程,可以获取返回值和异常
  • 使用线程池例如用Executor框架

JVM线程的实现

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值