700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java基础 通过继承Thread类和实现Runnable接口创建线程

java基础 通过继承Thread类和实现Runnable接口创建线程

时间:2020-06-14 01:50:16

相关推荐

java基础 通过继承Thread类和实现Runnable接口创建线程

java 创建线程

Java中,线程也是一种对象,但不是任何对象都可以成为线程。

只有实现了Runnable接口或继承了Thread类的对象才能成为线程。

继承Thread类

//格式:class 类名 extends Thread//从Thread类扩展出子类{属性方法修饰符 run(){//覆写Thread类里的run()方法通过线程处理的程序}}

例子:

package com.thread;//Thread存放在java.lang类库里,但并不需要加载java.lang类库,因为它会自动加载。public class Test {public static void main(String args[]){new TestThread().start();//启动线程必须要调用Thread类中的start()方法,//调用了start()方法,也就是调用了run()方法。for(int i = 0; i < 5; ++i) {System.out.println("main 线程在运行");}}}class TestThread extends Thread{public void run() {//run()方法是定义在Thread类里的一个方法,//因此把线程的程序代码编写在run()方法内,所做的就是覆写的操作。for(int i = 0; i < 5; ++i) {System.out.println("TestThread在运行");}}}/*main 线程在运行TestThread在运行TestThread在运行TestThread在运行TestThread在运行TestThread在运行main 线程在运行main 线程在运行main 线程在运行main 线程在运行*/

实现Runnable接口

Java程序只允许单一继承,一个子类只能有一个父类。

所以,在Java中如果一个类继承了某一个类,同时又想采用多线程技术,就不能通过继承Thread类的方法产生线程。

这时需要用Runnable接口来创建线程。

class 类名 implements Runnable//实现Runnable接口{属性方法修饰符 run(){//覆写Thread类里的run()方法以线程处理的程序;}}

下面的例子:

为什么实现了Runnable接口还需要调用Thread类中的start()方法才能启动多线程?

通过看JDK文档可以知道,Runnable接口中只有一个run()方法,并没有start()方法。所以要用Thread类中的start()方法来启动多线程。

Thread里有一个构造方法:public Thread(Runnable target),在这个构造方法中,用一个Runnable接口的实例化对象作为参数去实例化Thread类对象。

package com.thread;public class Test {public static void main(String args[]){TestThread t = new TestThread();//实例化一个TestThread类的对象new Thread(t).start();//通过TestThread类实例化一个Thread类的对象,之后调用start()方法启动多线程for(int i = 0; i < 5; ++i) {System.out.println("main 线程在运行");}}}class TestThread implements Runnable{public void run() {for(int i = 0; i < 5; ++i) {System.out.println("TestThread在运行");}}}/*main 线程在运行main 线程在运行main 线程在运行main 线程在运行main 线程在运行TestThread在运行TestThread在运行TestThread在运行TestThread在运行TestThread在运行*/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。