java基础-多线程-thread类、runnable接口
愿历尽千帆,归来仍是少年
多线程:thread、runnable废话不多说,直接上demo
Java中线程中状态可分为五种:New(新建状态),Runnable(就绪状态),Running(运行状态),Blocked(阻塞状态),Dead(死亡状态)。
-
New:新建状态,当线程创建完成时为新建状态,即new Thread(…),还没有调用start方法时,线程处于新建状态。
-
Runnable:就绪状态,当调用线程的的start方法后,线程进入就绪状态,等待CPU资源。处于就绪状态的线程由Java运行时系统的线程调度程序(thread scheduler)来调度。
-
Running:运行状态,就绪状态的线程获取到CPU执行权以后进入运行状态,开始执行run方法。
-
Blocked:阻塞状态,线程没有执行完,由于某种原因(如,I/O操作等)让出CPU执行权,自身进入阻塞状态。
-
Dead:死亡状态,线程执行完成或者执行过程中出现异常,线程就会进入死亡状态。

Thread类:
@ApiOperation(value = "basic线程测试-Thread", notes = "basic线程测试-Thread") @GetMapping(value = "/startThread") public Response startThread(){ // Thread类 // 新状态 BasicThread t1 = new BasicThread("张三"); BasicThread t2 = new BasicThread("李四"); // 可运行状态 t1.start(); t2.start(); return Response.ok(); }
/** * 基础线程测试 * * @author hxx * @version 1.0 * @date 2021/7/9 10:29 */ public class BasicThread extends Thread { public static Logger logger = LogManager.getLogger(BasicThread.class); public BasicThread (String param) { super(param); } public void run() { logger.info("BasicThread start!!!"); // 运行态 for (int i = 0; i < 1000; i++) { System.out.println(this.getName() + ":" + i); } // 死亡态 } }
Runnable接口:
@ApiOperation(value = "basic线程测试-runnable", notes = "basic线程测试-runnable") @GetMapping(value = "/startRunnableThread") public Response startRunnableThread(){ // Runnable接口 BasicRunnable a1 = new BasicRunnable("张三"); BasicRunnable a2 = new BasicRunnable("李四"); // 新状态 Thread t1 = new Thread(a1); Thread t2 = new Thread(a2); // 可运行状态 t1.start(); t2.start(); return Response.ok(); }
/** * @author hxx * @version 1.0 * @date 2021/7/9 10:48 */ public class BasicRunnable implements Runnable { public static Logger logger = LogManager.getLogger(BasicRunnable.class); private String param; public BasicRunnable(String param) { this.param = param; } @Override public void run() { logger.info("BasicRunnable Start!!!"); // 运行态 for (int i = 0; i < 1000; i++) { System.out.println(param + ":" + i); } // 死亡态 } }

浙公网安备 33010602011771号