# demo521 **Repository Path**: JavaObjects/demo521 ## Basic Information - **Project Name**: demo521 - **Description**: Java高级应用编程—— 多线程编程 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-07-31 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 148-Java-创建线程类的三种方式.md 第一种: ``` package 创建线程类的三种方式; /** * *
Title: SaleTicket
** Description: * 创建线程类的第一种方式: * 实现Runable接口 *
* @author xianxian * @date 2019年7月17日 */ public class SaleTicket1 implements Runnable { @Override public void run() { for (int i = 0; i <= 100; i++) { System.out.println(Thread.currentThread().getName() + "打印票号:" + i); } } } ``` ``` package 创建线程类的三种方式; /** * *Title: Test1
** Description: * 测试第一种方式创建的线程类 *
* @author xianxian * @date 2019年7月17日 */ public class Test1 { public static void main(String[] args) { SaleTicket1 s1 = new SaleTicket1(); Thread t1 = new Thread(s1); t1.start(); SaleTicket1 s2 = new SaleTicket1(); Thread t2 = new Thread(s2); t2.start(); } } ``` 测试结果如下:  第二种: ``` package 创建线程类的三种方式; /** * *Title: SaleTicket2
** Description: * 创建线程类的第二种方式: * 继承Thread类 *
* @author xianxian * @date 2019年7月17日 */ public class SaleTicket2 extends Thread { @Override public void run() { for (int i = 0; i <= 100; i++) { System.out.println(Thread.currentThread().getName() + "打印票号:" + i); } } } ``` ``` package 创建线程类的三种方式; /** * *Title: Test1
** Description: * 测试第二种方式创建的线程类 *
* @author xianxian * @date 2019年7月17日 */ public class Test2 { public static void main(String[] args) { SaleTicket2 s1 = new SaleTicket2(); s1.start(); SaleTicket2 s2 = new SaleTicket2(); s2.start(); } } ``` 测试结果如下:  第三种: ``` package 创建线程类的三种方式; import java.util.concurrent.Callable; /** * *Title: SaleTicket3
** Description: * 有返回值的线程类 *
* @author xianxian * @date 2019年7月17日 */ public class SaleTicket3 implements CallableTitle: Test1
** Description: * 测试第三种方式创建的线程类 *
* @author xianxian * @date 2019年7月17日 */ public class Test3 { public static void main(String[] args) { SaleTicket3 s1 = new SaleTicket3(); FutureTask