Java多线程基础总结

一、线程基础

  1、Java线程的状态及转换

线程状态转换图

  New(新建状态):线程对象对创建后未被启动(start方法)时,线程则处于该状态 eg. Thead thread = new Tread();

  Runnable(就绪状态):线程对象被创建且被调用了该对象对start方法,此时则处于就绪状态;

  Running(运行状态):线程获取CPU权限进行执行;备注:线程只能由Runnable进入到Running状态;

  Blocked(阻塞状态):线程通过某些原因放弃CPU使用权,暂时停止运行;直到线程进入到Runnable状态才能转到Running状态,且阻塞大致分为三种情况:

    1)等待阻塞:线程调用wait()方法,让线程等待其他工作完成后唤醒(notify/notifyAll)

    2) 同步阻塞:线程获取同步锁synchronized失败时,进入同步阻塞状态

    3) 其他阻塞:线程调用sleep或者join或出I/O请求时,进入组设状态

  Dead(死亡状态):线程执行完或因异常退出run()方法时,结束其生命周期

  

  2、线程创建的常用方式

  1)实现Runnable接口 + 重写run方法

public interface Runnable {
    public abstract void run();
}

  1)继承Thead实现类 + 重写run方法

    

    

猜你喜欢

转载自www.cnblogs.com/codeman977/p/10390241.html
今日推荐