线程创建
继承Thread类
package com.thread.demo01;
//创建线程方式一:继承Thread类,重写run()方法,调用start方法开启线程
//总结:注意,线程开启不一定立即执行,由CPU调度执行
public class TestThread1 extends Thread{
实现Runnable接口
package com.thread.demo01;
//创建线程方式二:实现runnable接口,重写run()方法,执行线程需要丢入runnable接口的实现类,调用start方法
public class TestThread2 implements Runnable{
-
推荐使用Runnable接口,避免单继承局限性,灵活方便,方便同一个对象被多个线程使用。
初识并发问题
package com.thread.demo01;
//多个线程同时操作同一个对象
//买火车票的例子
public class TestThread4 implements Runnable{
//票数
private int ticketNums = 10;
案例:龟兔赛跑
package com.thread.demo01;
//模拟龟兔赛跑
public class Race implements Runnable{
private static String winner;//胜利者