(45)创建线程的第二种方式:实现Runnable接口、两种方式比较
来源:互联网 发布:unity3d fbx 编辑:程序博客网 时间:2024/05/16 15:11
需求:简单的卖票程序
多个窗口同时卖票
一、创建线程的第二种方式:实现Runnable接口
步骤:
1.定义类实现Runable接口
2.覆盖Runable接口中的run方法
将线程要运行的代码存放在run方法中
3.通过Thread类建立线程对象
4.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
为什么要将Runnable接口的子类对象传递给Thread的构造函数?
因为:自定义的run方法所属的对象是Runnable接口的子类对象
所以要让线程去指定对象的run方法。就必须明确run方法所属的对象
5.调用Thread类的start方法开启线程并调用Runable接口子类的run方法
二、实现方式和继承方式有什么区别?
实现方式避免了单继承的局限性。
在定义线程时,建议使用实现方式
通过一个例子方便理解
学生类中有被多线程所执行的代码,即run方法,那么它可以继承Thread类,来实现学生类多线程
但是,有时可能对学生和工人进行提取,形成他们的父类Person类,当学生中有多线程代码run方法时,
并不能继承Thread类(java中只支持单继承),所以这时,就得通过实现接口来实现多线程,此时,
这个学生类既可以继承父类,也可以实现接口
三、两种方式的区别:
继承Thread:线程代码存放在Thread子类的run方法中
实现Runable:线程代码存放在接口的子类的run方法中
private int tick=10;
public void run() {
while(true) {
if(tick>0) {
System.out.println(Thread.currentThread().getName()+"sale:"+tick--);
}
}
}
}
public class ThreadDemo {
public static void main(String[] args) {
Demo d=new Demo();//并不是线程
Thread t1=new Thread(d);
Thread t2=new Thread(d);
Thread t3=new Thread(d);
Thread t4=new Thread(d);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
阅读全文
0 0
- (45)创建线程的第二种方式:实现Runnable接口、两种方式比较
- java创建线程的第二种方式:实现Runnable接口
- 线程的第二种创建方式 实现接口Runnable
- 创建线程的第二种方式:实现一个接口Runnable。
- Runnable和Thread两种方式创建线程的比较
- 创建子线程的两种方式:类实现runnable接口或是类继承Thread类
- 09-多线程(创建线程的第二种方式—实现Runnable接口)1 2 10-多线程(第二种方式的细节) 11-多线程(第二种方式的好处)
- 线程 创建和启动线程的两种方式 实现Runnable接口 继承Thread类 重写唯一方法run()
- multithreading--创建Thread线程的第二种方式,Runnable
- java学习日记_100:线程的第二种实现方式——实现Runnable接口
- 创建线程两种方式的比较
- 创建线程两种方式的比较
- 创建线程的第二种方法:实现Runnable接口
- 创建线程的两种方式(实现接口的方式请看实例分析5)
- Java线程总结(一):创建线程的两种方式Thread和Runnable
- java--(多线程创建的两种方式Thread类和Runnable接口)
- 线程的两种创建方式:Thread类和Runnable接口,它们都要复写run方法
- 创建线程的方式(继承和实现接口两种)
- PostgreSql新手入门命令
- get和post编码方式
- Android系统广播大全
- Mariadb开启慢查询
- 有用有趣的站点
- (45)创建线程的第二种方式:实现Runnable接口、两种方式比较
- java-基本类型和引用类型作为形式参数
- oracle字段根据字符串拆分
- poj 2352 && hdu 1541 Stars(树状数组)
- 温度传感器 DS18B20
- Browse the filesystem链接打不开
- cacti中snmp的应用
- Spell checker poj 1035 (串的练习)
- elasticsearch学习总结(二) 集群数据分配