JAVA——多线程(Runnable)
2016-04-26 09:42
846 查看
实现Runnable接口是创建线程的第二种方式;
步骤:
1、定义类实现Runnable接口
2、覆盖Runnable接口中的run方法
将线程要运行的代码存放在该run方法中。
3、通过Thread类建立线程对象
4、将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
为什么要将Runnable接口的子类对象传递给Thread的构造函数?
因为自定义的run方法所属的对象是Runnable接口的子类对象。所以要让线程去指定对象的run方法。就必须明确该run方法所属对象。
5、调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。
实现方式和继承方式有什么区别呢?
实现方式的好处:避免了单继承的局限性。
在定义线程时,建议使用实现方式。
两种方式区别:
继承Thread:线程代码存放在Thread子类的run方法中。
实现Runnable,线程代码存在接口的子类的run方法中。
步骤:
1、定义类实现Runnable接口
2、覆盖Runnable接口中的run方法
将线程要运行的代码存放在该run方法中。
3、通过Thread类建立线程对象
4、将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
为什么要将Runnable接口的子类对象传递给Thread的构造函数?
因为自定义的run方法所属的对象是Runnable接口的子类对象。所以要让线程去指定对象的run方法。就必须明确该run方法所属对象。
5、调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。
class Ticket implements Runnable { private int ticket = 20; public void run() { while(true) { if(ticket>0) { System.out.println(Thread.currentThread().getName()+"---sale :"+ticket--); } } } } class TicketDemo1 { public static void main(String[] args) { Ticket t = new Ticket(); Thread t1 = new Thread(t);//创建了一个线程 Thread t2 = new Thread(t);//创建了一个线程 Thread t3 = new Thread(t);//创建了一个线程 Thread t4 = new Thread(t);//创建了一个线程 t1.start(); t2.start(); t3.start(); t4.start(); } }
实现方式和继承方式有什么区别呢?
实现方式的好处:避免了单继承的局限性。
在定义线程时,建议使用实现方式。
两种方式区别:
继承Thread:线程代码存放在Thread子类的run方法中。
实现Runnable,线程代码存在接口的子类的run方法中。
相关文章推荐
- java的单例设计模式解读
- (33)Spring Boot 监控和管理生产环境【从零开始学Spring Boot】
- Java运用设计模式中的建造者模式构建项目的实例解析
- finally关键字说明及使用<整理>
- java里面的枚举enum
- Java中的简单工厂模式
- Java基础知识(五)
- JAVA的Random类的用法详解
- Java的各种工具类
- 监听器-java同步的基本思想
- Struts2 **-validation.xml <param name="expression">正则验证不起作用
- Java实现Trie树
- Spring 4.1+JSONP的使用指南
- Java图片加文字水印
- Java图片加文字水印
- JDK环境变量配置
- Eclipse快捷键指南
- Eclipse快捷键指南
- spring的DI
- java中volatile关键字的含义