使用Thead子类创建线程和使用Thread直接创建线程(Runnable接口)的区别?
2026/6/25 15:59:19 网站建设 项目流程
class TicketThread extends Thread { private int ticket = 10; @Override public void run() { while(ticket > 0) { System.out.println(getName() + "卖票:" + ticket--); } } } public class ThreadDemo { public static void main(String[] args) { // 两个独立对象,各有10张票,总共卖出20张,数据不共享 TicketThread t1 = new TicketThread(); TicketThread t2 = new TicketThread(); t1.start(); t2.start(); } }
class TicketTask implements Runnable { private int ticket = 10; @Override public void run() { while(ticket > 0) { System.out.println(Thread.currentThread().getName() + "卖票:" + ticket--); } } } public class RunnableDemo { public static void main(String[] args) { // 同一个任务对象传入两个线程,共享10张票 TicketTask task = new TicketTask(); Thread t1 = new Thread(task, "窗口1"); Thread t2 = new Thread(task, "窗口2"); t1.start(); t2.start(); } }

继承Thread无法共享数据;Runnable可多线程共享数据。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询