【Java多线程】创建多线程的方式二---实现Runnable接口(多窗口卖票)
创始人
2024-05-13 18:25:45
0
题:创建三个窗口卖票,总票数为100张

1.继承Thread类的方式:

因为是三个窗口共卖100张所以我们在定义ticket时要用到static来修饰

private static int ticket = 100;

代码如下:

class Window extends Thread{private static int ticket = 100;@Overridepublic void run() {while (true){if (ticket > 0) {System.out.println(getName() + "卖票,票号为:" + ticket);ticket --;}else {break;}}}
}
public class WindowTest {public static void main(String[] args) {Window t1 = new Window();Window t2 = new Window();Window t3 = new Window();t1.setName("窗口1");t2.setName("窗口2");t3.setName("窗口3");t1.start();t2.start();t3.start();}
}

运行结果如下:

我们可以看到窗口1,2,3都卖了票号为100的票,这个时候就要讲到线程的安全问题。我们先忽略 

如果我们不用static修饰改这么写?这个时候引入了创建多线程的方式二---->实现Runnable接口

=========================================================================

创建多线程的方式二---->实现Runnable接口

步骤如下:

1.创建一个实现了Runnable接口的类、

2.实现类去实现Runnable中的抽象方法:run()

3.创建实现类的对象

4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象

5.通过Thread类的对象调用start()

举例说明:遍历100以内的偶数

//1.创建一个实现了Runnable接口的类
class MThread implements Runnable{
//    2.实现类去实现Runnable中的抽象方法:run()@Overridepublic void run() {for (int i = 0; i < 100; i++) {if (i % 2 == 0) {System.out.println(i);}}}
}
public class ThreadTest1 {public static void main(String[] args) {
//        3.创建实现类的对象MThread mThread = new MThread();
//        4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象Thread t1 = new Thread(mThread);
//        5.通过Thread类的对象调用start()t1.start();}
}

在第四步中的运行过程:①启动线程 ②调用当前线程的run()-->调用了Runnable类型的target的run()。

如果我们再启动一个线程,遍历100以内的偶数

//1.创建一个实现了Runnable接口的类
class MThread implements Runnable{
//    2.实现类去实现Runnable中的抽象方法:run()@Overridepublic void run() {for (int i = 0; i < 100; i++) {if (i % 2 == 0) {System.out.println(Thread.currentThread().getName() + ":" + i);}}}
}
public class ThreadTest1 {public static void main(String[] args) {
//        3.创建实现类的对象MThread mThread = new MThread();
//        4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象Thread t1 = new Thread(mThread);
//        5.通过Thread类的对象调用start():①启动线程 ②调用当前线程的run()-->调用了Runnable类型的target的run()t1.start();//再启动一个线程,遍历100以内的偶数Thread t2 = new Thread(mThread);t2.start();}
}

==============================回到问题==================================

使用实现Runnable接口的方式,多窗口卖票

代码如下:

class Window1 implements Runnable{private int ticket = 100;@Overridepublic void run() {while (true){if (ticket > 0){System.out.println(Thread.currentThread().getName() + ":卖票,票号为:" + ticket);ticket--;}else {break;}}}
}
public class WindowTest1{public static void main(String[] args) {Window1 w = new Window1();Thread t1 = new Thread(w);Thread t2 = new Thread(w);Thread t3 = new Thread(w);t1.setName("窗口1");t2.setName("窗口2");t3.setName("窗口3");t1.start();t2.start();t3.start();}
}

运行结果如下:

 忽略线程安全问题。没有static可以使用实现Runnable接口的方式实现多窗口卖票

关于线程安全问题在之后的文章会讲解。

感谢观看!!!

相关内容

热门资讯

初一学生写的作文【优选6篇】 初一学生写的作文 篇一我的暑假生活暑假终于到了,这是我进入初中以来的第一个暑假。我期待这个假期已经很...
这也是失败的尝试初一作文(精... 这也是失败的尝试初一作文 篇一我的失败经历失败,对于每个人来说都是一种痛苦的经历。而我,也曾经历过一...
成长回眸作文(实用6篇) 成长回眸作文 篇一当我回眸自己的成长历程,我不禁感慨万分。从小到大,我经历了许多的挫折与困难,但也收...
再来一次,我要对你说出那句话... 再来一次,我要对你说出那句话初一作文 篇一第一篇内容再来一次,我要对你说出那句话记得那是一个阳光明媚...
一朵永不凋谢的六色花作文12... 一朵永不凋谢的六色花作文1200字 篇一一朵永不凋谢的六色花在一个幽静的小村庄里,有一位名叫小红的女...
姐姐出嫁作文(优质5篇) 姐姐出嫁作文 篇一姐姐出嫁是人生中一段重要的时刻,它不仅意味着姐姐将和自己的另一半共度一生,更是家庭...
初中作文窗外600字【精简6... 初中作文窗外600字 篇一窗外的四季窗外是一个神奇的世界,它随着四季的更替,展现出不同的景象和色彩。...
初中议论文作文600字【优秀... 初中议论文作文600字 篇一"手机禁用,营造宁静学习环境"如今,手机已经成为人们生活中不可或缺的一部...
我的中国梦作文600字初一(... 我的中国梦作文600字初一 篇一我的中国梦作为一个中国人,我有着自己的中国梦。中国梦,是每个中国人对...
我的年度关键词旅游作文【实用... 我的年度关键词旅游作文 篇一我今年的关键词是“自然”,因此我选择去探索大自然的奇妙之处。我决定去一座...
你好初一优秀作文49篇(优秀... 你好初一优秀作文49篇 篇一初中生活的收获与感悟初中三年的时光匆匆而过,回首看来,这三年是我成长最快...
哑剧表演初一作文【最新6篇】 哑剧表演初一作文 篇一哑剧表演初一作文 篇一哑剧表演是一种没有语言交流的表演形式,通过动作、表情和肢...
薄雾浓云愁永昼散文(优质3篇... 薄雾浓云愁永昼散文 篇一薄雾浓云愁永昼在这个美丽的季节里,我站在山顶俯瞰着整个城市。薄雾弥漫,浓云滚...
初中记叙类作文600字【经典... 篇一:初中记叙类作文600字一次难忘的旅行那是我初中时期的一个寒假,我和家人决定去一个陌生的城市旅行...
我的初中老师作文500字(精... 我的初中老师作文500字 篇一初中时期是我人生中最重要的阶段之一,而我的初中老师也是我成长过程中的重...
优秀作文初一 优秀作文初一(精选38篇)  在日常学习、工作抑或是生活中,大家都尝试过写作文吧,作文是通过文字来表...
聊一聊那些快乐的往事初中作文... 聊一聊那些快乐的往事初中作文 篇一初中时光,是我生命中最美好的一段时光。在这段时间里,我经历了许多快...
初中校园生活作文(经典6篇) 初中校园生活作文 篇一:我的初中校园生活初中校园生活是我人生中最难忘的一段时光。在这里,我度过了三年...
盲人的世界初中生作文(最新5... 盲人的世界初中生作文 篇一盲人的世界盲人是指那些失去了视力的人。他们无法感受到周围的光线和颜色,无法...
初一感动的作文600字【优秀... 初一感动的作文600字 篇一初一是一个充满新奇和挑战的年纪。在这一年里,我经历了许多感动和感慨,其中...