Java多线程

2021-09-26  本文已影响0人  super_girl秘密基地

实现多线程的方式:

  继承Thread类:(Thread类源码中也实现了Runnable接口)

  1. 自定义线程类继承Thread类

  2. 重写 run()方法,编写线程执行体

  3. 创建线程对象,调用 start()方法启动线程

  实现Runnable接口:

  1. 自定义线程类实现Runnable接口

  2. 重写 run()方法,编写线程执行体

  3. 创建线程对象,调用 start()方法启动线程

  实现Callable接口

线程的五大状态:

  1. 新生状态:创建线程对象Thread thread = new Thread( )

  2. 就绪状态:当调用start()方法,线程立即进入就绪状态,但不代表立即调度执行

  3. 运行状态:通过CPU调度进入运行状态,线程才真正执行线程体的代码块

  4. 阻塞状态:当调用sleep、wait或者同步锁定时,线程进入阻塞状态,阻塞状态停止后,再次进行就绪状态,正常调度后运行

  5. 死亡状态:线程中断或者结束,一旦进入死亡状态,就不能再次启动

因为Java是单继承,所以推荐用Runnable接口创建线程;避免了单继承的局限性,灵活方便,方便同一个对象被多个线程使用

线程休眠sleep()的作用:【每一个对象都有一个锁,sleep不会释放锁】

  1. 模拟网络延时:放大问题的发生性,比如多个线程用同一个对象,会出现数据不安全的问题

  2. 模拟倒计时

上一篇 下一篇

猜你喜欢

热点阅读