两种线程创建的比较

来源:互联网 发布:淘宝买家好评率90 编辑:程序博客网 时间:2024/06/03 17:45

目前为止,只知道两种线程创建的办法,一种是类继承,一种是接口的实现

就关于火车售票的问题来分析一下他们的区别

下面是通过接口的实现来创建线程的办法

package 两种创建线程的比较;public class 两种创建线程的比较_Runnable {         public static void main(String[] args) {TicketWindow2 th = new TicketWindow2();  new Thread(th,"窗口1").start();  //创建四个新线程  new Thread(th,"窗口2").start();  new Thread(th,"窗口3").start();  new Thread(th,"窗口4").start();}}class TicketWindow2 implements Runnable{   //实现Runnable接口private int tickets = 100;public void run(){while(true){if(tickets > 0){Thread th = Thread.currentThread();   //获取当前线程String th_name= th.getName();         //获取线程名System.out.println(th_name+"正在发售"+tickets--+"张票");}}}}//这种实现Runnable接口的办法可以共享资源


下面是类继承的办法来实现创建线程的办法

package 两种创建线程的比较;public class 两种创建线程的比较 {public static void main(String[] args) {new TicketWindow().start();      //创建一个TicketWindow对象并开启new TicketWindow().start();      //创建一个TicketWindow对象并开启new TicketWindow().start();      //创建一个TicketWindow对象并开启new TicketWindow().start();      //创建一个TicketWindow对象并开启}     }class TicketWindow extends Thread{private int tickets = 100;public void run(){while(true){if(tickets > 0){Thread th = Thread.currentThread();    //用Thread类的变量接收当前线程String th_name=th.getName();            //用string类型的变量接受th线程的名字System.out.println(th_name+"正在发售第"+tickets--+"张票");}}}}

运行程序后发现,通过类继承创建线程的办法是不能共享资源的,像上面的代码,是创建了四个线程,每个线程的tickets都是从100开始到0结束,所以每个窗口会打印100次

而通过接口来创建线程的办法则可以共享资源,这样四个窗口共打印了100次

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 运动膝盖抻着了怎么办 大腿内侧抻着了怎么办 大腿抻筋了 很疼怎么办 小腿肚子聚筋了怎么办 6个月婴儿腿弯怎么办 胳膊抻筋拉伤了怎么办 宝宝抻着了怎么办妙招 拎东西胳膊抻了怎么办 小臂一用力筋疼怎么办 摔破胳膊很痛怎么办 胳膊的筋扭伤了怎么办 小孩胳膊抻筋了怎么办 肩膀抻着了怎么办妙招 右边肩膀抻着了怎么办 胳膊因劳累很痛怎么办 宝宝胳膊摔了疼怎么办 宝宝胳膊抻筋了怎么办 孕妇胳膊筋伤了怎么办 刚进公司就怀孕怎么办 撞到胳膊麻筋了怎么办 腰抻了怎么办多久能好 腰突然抻了一下怎么办 干活抻筋了 很疼怎么办 胳膊抻筋一动就疼怎么办 肩膀受风了很疼怎么办 开空调受风了怎么办 胳膊受风了疼怎么办 孩子胳膊抻筋了怎么办 胳膊被风吹了疼怎么办 月子里胳膊受风怎么办 受风了胳膊酸痛怎么办 胳膊受风了在家怎么办 手臂烧伤手肿了怎么办 胳膊里的筋疼怎么办 3岁胳膊背筋了怎么办 左胳膊筋一直疼怎么办 手臂突然筋扭了怎么办 胳膊扭了肿了怎么办 胖人走路磨大腿怎么办 脖子上长了个淋巴结怎么办 面部危险三角区长痘痘怎么办