黑马程序员——java多线程的两种实现方式
来源:互联网 发布:国泰君安富易软件 编辑:程序博客网 时间:2024/04/27 14:23
线程是进程的中的一个独立的控制单元,一个进程可以有多个线程,合理的线程数是能够提高程序的运行效率的。在Java中有两种实现多线程的方式,一是直接继承Thread类,二是实现Runnable接口。下面以简单的龟兔赛跑问题来分别演示这两种多线程实现的具体步骤。
一、直接继承Thread类的多线程实现步骤
1.定义类继承Thread;
2.复写Thread类中run方法;
3.调用线程的start方法;
class rabitRun extends Thread{ //继承Thread//重写run方法public void run(){for(int i=0;i<=300;i++){System.out.println("兔子跑了"+i+"步");}}}public class threadDemo {public static void main(String[] args) {rabitRun rabit=new rabitRun();//调用start启动线程rabit.start();for(int i=0;i<=200;i++){System.out.println("乌龟跑了"+i+"步");}}}
注意:直接调用run()方法并不会启动一个新线程,它和调用一个普通的java方法没有什么区别。二、实现Runnable接口的多线程实现步骤
1.定义类实现Runnable接口;
2.覆盖Runnable接口中的run方法;
3.通过Thread类建立线程对象;
4.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数;
5.调用Thread了的start方法开启线程;
class rabit implements Runnable{ //定义类实现Runnable接口//覆盖Runnable接口中的run方法public void run(){for(int i=0;i<=300;i++){System.out.println("兔子跑了"+i+"步");}}}public class runableDemo {public static void main(String[] args) {rabit rab=new rabit();//通过Thread类建立线程对象,并把Runnable的子类对象作为参数Thread r=new Thread(rab);//调用Thread类的start方法开启线程r.start();for(int i=0;i<=200;i++){System.out.println("乌龟跑了"+i+"步");}}}
总结继承Thread类的方式,线程代码存放在Thread子类的run方法中;实现Runnable的方式,线程代码存放在接口的子类的run方法中。我们经常碰到这样一种情况,即当我们要将已经继承了某一个类的子类放入多线程中,由于一个类不能同时有两个父类,所以不能用继承Thread类的方式,那么,这个类就只能采用实现Runnable接口的方式了,它避免了由于Java的单继承特性带来的局限
0 0
- 黑马程序员-Java实现多线程的两种方式
- 黑马程序员——java多线程的两种实现方式
- 黑马程序员——JAVA基础之简述多线程,两种创建多线程的方式
- 黑马程序员--Java多线程的两种实现方式:继承Thread类 & 实现Runable接口
- 黑马程序员——java基础拾遗之多线程(一) 多线程的两种实现
- java多线程—常用的两种实现多线程方式
- 黑马程序员—多线程的两种创建方式与多线程安全问题
- 黑马程序员 JAVA多线程实现的三种方式
- 黑马程序员————————创建多线程的两种方式
- 黑马程序员_多线程间通信的两种方式
- Java实现多线程的两种方式
- Java实现多线程的两种方式
- Java多线程实现的两种方式
- Java 多线程实现的两种方式
- Java多线程的两种实现方式
- JAVA多线程实现的两种方式
- java 实现多线程的两种方式
- Java实现多线程的两种方式
- 流行的Android的知识点连接
- 自己做的html5手机网站
- Android随身记
- 黑马程序员-Java中的properties类
- java的字符串常量池(转)
- 黑马程序员——java多线程的两种实现方式
- iOS7.0 UILabel 字符串的绘制和自动换行
- Android的四大组件
- apt-get指令的autoclean,clean,autoremove的区别
- 数据不需要自由,但需要做爱
- myeclipse 选中文字的操作方式
- 【读书笔记】【收获,不止Oracle】位图索引(2)
- Code Forces 414B 挺不错的递推动规
- 第06章-图像处理及可视化(2)