Java基础回顾 : 线程的实现方式
2016-05-25 22:11
435 查看
总结 :关于Thread类与Runnable接口的区别?(多线程两种实现方式的区别)
├ . Thread类是Runnalbe接口的子类 ;
├ . 如果要想实现多线程,那么必须要有线程主体类,主体类可以继承Thread类或实现Runnable接口,但是实现接口可以有效的避免单继承局限 ;
├ . 利用Runnable实现的多线程类,可以更加方便的表示出数据共享的概念 .
示例 : 通过实现Runnalbe接口来实现多线程
示例 : 通过继承Thread类来实现多线程
示例 : 通过实现Runnable接口来实现数据共享
示例 : 通过继承Thread类来实现数据共享
├ . Thread类是Runnalbe接口的子类 ;
├ . 如果要想实现多线程,那么必须要有线程主体类,主体类可以继承Thread类或实现Runnable接口,但是实现接口可以有效的避免单继承局限 ;
├ . 利用Runnable实现的多线程类,可以更加方便的表示出数据共享的概念 .
示例 : 通过实现Runnalbe接口来实现多线程
package example; class MyThread implements Runnable{ private String title; public MyThread (String title){ this.title = title; } @Override public void run() { for(int i=0;i<10;i++){ System.out.println("线程:" + this.title + " ,i = " + i); } } } public class TestDemo { public static void main(String[] args) { MyThread mt1 = new MyThread("A"); MyThread mt2 = new MyThread("B"); MyThread mt3 = new MyThread("C"); Thread t1 = new Thread(mt1); Thread t2 = new Thread(mt2); Thread t3 = new Thread(mt3); t1.start(); t2.start(); t3.start(); } }
示例 : 通过继承Thread类来实现多线程
package example; class MyThread extends Thread{ private String title; public MyThread (String title){ this.title = title; } @Override public void run() { for(int i=0;i<10;i++){ System.out.println("线程:" + this.title + " ,i = " + i); } } } public class TestDemo { public static void main(String[] args) { MyThread mt1 = new MyThread("A"); MyThread mt2 = new MyThread("B"); MyThread mt3 = new MyThread("C"); mt1.start(); mt2.start(); mt3.start(); } }
示例 : 通过实现Runnable接口来实现数据共享
package example; class MyThread implements Runnable{ private int ticket = 10; @Override public void run() { for(int i=0;i<50;i++){ if(ticket > 0){ System.out.println(Thread.currentThread().getName() + "卖票:" + this.ticket --); } } } } public class TestDemo { public static void main(String[] args) { MyThread mt = new MyThread(); //三个线程,共享主体线程mt Thread t1 = new Thread(mt,"A"); Thread t2 = new Thread(mt,"B"); Thread t3 = new Thread(mt,"C"); t1.start(); t2.start(); t3.start(); } }
示例 : 通过继承Thread类来实现数据共享
package example; class MyThread extends Thread{ private int ticket = 10; @Override public void run() { for(int i=0;i<50;i++){ if(ticket > 0){ System.out.println(Thread.currentThread().getName() + "卖票:" + this.ticket --); } } } } public class TestDemo { public static void main(String[] args) { MyThread mt = new MyThread(); //Thread类实现了Runnable接口 //三个线程,共享主体线程mt Thread t1 = new Thread(mt,"A"); Thread t2 = new Thread(mt,"B"); Thread t3 = new Thread(mt,"C"); t1.start(); t2.start(); t3.start(); } }
相关文章推荐
- 【Java学习-J.160525.0.19】Java 面向对象以及类与类的继承
- 第一章 JAVA入门 Framework层之Libraries
- 深入总结 Spring MVC
- Java 之类的加载顺序
- Eclipse中的Maven插件运行项目中的Goals设置
- 设计模式的学习——工厂模式
- JAVA泛型 一
- 配置java 和tomacat环境过程
- Java IO - CharArrayReader&CharArrayWriter
- maven搭建ssm分模块框架 (myeclipse版) (二) 较详细版
- java 基础拾漏
- 第一个算法优化例子
- Java synchronized详解
- java享元设计模式
- Java语言的发展及其特点
- Java入门篇
- 关于java中一些代码的理解
- javaSE 模拟Spring框架的Ioc
- Java系统工具jps原理解析
- Spring 计划 7.0