首页 > 代码库 > java实现线程的两种方式
java实现线程的两种方式
要求:一个火车站,三个售票员卖出100张票
1.通过继承Thread类实现
实现思路:建立ThreadTest类继承Thread并建立三个线程卖100张票
public class ThreadTest extends Thread { private int i = 100; public void run() { while(true){ if(i>0) { System.out.println(Thread.currentThread().getName() + "正在售出第" + i-- + "张票"); } } } public static void main(String[] args){ ThreadTest th = new ThreadTest(); new Thread(th).start(); new Thread(th).start(); new Thread(th).start(); } }
体会:三个线程之间无序卖票,且线程之间无干扰。
2.通过实现Runnable接口达到要求
实现思路:建立ThreadTest类实现Runnable接口并建立一个对象的三个线程卖100张票
public class ThreadTest implements Runnable { private int i = 100; public void run() { while(true){ if(i>0) { System.out.println(Thread.currentThread().getName() + "正在售出第" + i-- + "张票"); } } } public static void main(String[] args){ ThreadTest th = new ThreadTest(); new Thread(th).start(); new Thread(th).start(); new Thread(th).start(); } }
个人体会:三个线程共同卖出100张票,线程之间无序执行,th就相当于一个火车站,然后三个售票员卖100张票
拓展:三个火车站共同卖出100张票
思路:建立三个ThreadTest类的对象当做三个火车站,每个火车站一个售票员,把票变为静态属性
public class ThreadTest extends Thread { static int i = 100; public void run() { while(true){ if(i>0) { System.out.println(Thread.currentThread().getName() + "正在售出第" + i-- + "张票"); } } } public static void main(String[] args){ ThreadTest th1 = new ThreadTest(); new Thread(th1).start();//一火车站一售票员 ThreadTest th2 = new ThreadTest(); new Thread(th2).start(); ThreadTest th3 = new ThreadTest(); new Thread(th3).start(); } }
总结:一个ThreadTest类的对象就是一个火车站,一个进程就相当于一个售票员。。。
java实现线程的两种方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。