实现Runnable接口适合资源的共享
来源:互联网 发布:世界史书推荐知乎 编辑:程序博客网 时间:2024/04/19 21:18
Java当中,创建线程通常用两种方式:
- 继承Thread类
实现Runnable接口
但是在通常的开发当中,一般会选择实现Runnable接口,原因有二:
1、避免单继承的局限,在Java当中一个类可以实现多个接口,但只能继承一个类
2、适合资源的共享
原因1我们经常听到,但是2是什么呢?下面用一个例子来解释:
有5张票,分两个窗口卖:继承Thread类:
public class ThreadDemo { public static void main(String[] args) { HelloThread t1 = new HelloThread(); t1.setName("一号窗口"); t1.start(); HelloThread t2 = new HelloThread(); t2.setName("二号窗口"); t2.start(); }}class HelloThread extends Thread{ private int ticket = 5; public void run() { while(true){ System.out.println(this.getName()+(ticket--)); if (ticket<1) { break; } } }}
运行结果:
很明显,这样达不到我们想要的结果,这样两个窗口在同时卖票,互不干涉。
实现Thread类:
public class ThreadDemo { public static void main(String[] args) { HelloThread t = new HelloThread(); Thread thread1 = new Thread(t, "1号窗口"); thread1.start(); Thread thread2 = new Thread(t, "2号窗口"); thread2.start(); }}class HelloThread implements Runnable{ private int ticket = 5; public void run() { while(true){ System.out.println(Thread.currentThread().getName()+(ticket--)); if (ticket<1) { break; } } }}
运行结果:
这样两个窗口就共享了5张票,因为只产生了一个HelloThread对象,一个对象里边有一个属性,这样两个线程同时在操作一个属性,运行同一个run方法。
这样就达到了资源的共享
0 0
- 实现Runnable接口适合资源的共享
- 线程的实现(通过Runnable接口实现资源的共享:卖票)
- 区别1.Runnable接口方式,数据是程共享的 2 接口可以多实现
- 实现Runnable接口的线程
- 实现Runnable接口的多线程可以实现属性共享的原因
- 实现Runnable接口的线程使用
- JAVA 实现Runnable接口
- 多线程实现Runnable接口
- JAVA 实现Runnable接口
- Thread实现接口 Runnable
- Runnable接口实现多线程
- 多线程实现Runnable接口
- JAVA 实现Runnable接口
- 实现Runnable接口实现多线程
- Java实现Runnable接口方式实现多线程的优势
- 线程的实现(通过实现Runnable接口启动线程)
- 实现Runnable接口控制线程
- 匿名类实现Runnable接口
- LeetCode:263. Ugly Number
- c++第二次试验-通过计算说明,这个换钱计划对百万富翁是否是个划算的交易(作业)
- image-style-transfor项目在win10上采用gpu运行的部署
- C++ Primer_4th学习笔记(8)- 数组和指针
- < Unable to ping server at localhost:1099>问题解决---小记
- 实现Runnable接口适合资源的共享
- 设计模式:六大原则
- 求π的近似值
- ZigBee_端点管理_描述符
- 剑指offer 数值的整数次幂,求base的exponent次方,不能使用库函数,同时不需要考虑大数问题
- [笔记]算法复习笔记---栈、队列、链表(下)
- POJ 3009 Curling 2.0
- 15分钟学会使用Git和远程代码库
- 201312 CCF 第二题 ISBN号码