java基础 通过继承Thread类和实现Runnable接口创建线程
生活随笔
收集整理的這篇文章主要介紹了
java基础 通过继承Thread类和实现Runnable接口创建线程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
java 創(chuàng)建線程
Java中,線程也是一種對象,但不是任何對象都可以成為線程。
只有實現(xiàn)了Runnable接口或繼承了Thread類的對象才能成為線程。
繼承Thread類
//格式: class 類名 extends Thread//從Thread類擴(kuò)展出子類 {屬性方法修飾符 run(){//覆寫Thread類里的run()方法通過線程處理的程序} }例子:
package com.thread; //Thread存放在java.lang類庫里,但并不需要加載java.lang類庫,因為它會自動加載。 public class Test {public static void main(String args[]){new TestThread().start();//啟動線程必須要調(diào)用Thread類中的start()方法,//調(diào)用了start()方法,也就是調(diào)用了run()方法。for(int i = 0; i < 5; ++i) {System.out.println("main 線程在運行");}} } class TestThread extends Thread {public void run() {//run()方法是定義在Thread類里的一個方法,//因此把線程的程序代碼編寫在run()方法內(nèi),所做的就是覆寫的操作。for(int i = 0; i < 5; ++i) {System.out.println("TestThread在運行");}} } /*main 線程在運行 TestThread在運行 TestThread在運行 TestThread在運行 TestThread在運行 TestThread在運行 main 線程在運行 main 線程在運行 main 線程在運行 main 線程在運行 */實現(xiàn)Runnable接口
Java程序只允許單一繼承,一個子類只能有一個父類。
所以,在Java中如果一個類繼承了某一個類,同時又想采用多線程技術(shù),就不能通過繼承Thread類的方法產(chǎn)生線程。
這時需要用Runnable接口來創(chuàng)建線程。
class 類名 implements Runnable//實現(xiàn)Runnable接口 {屬性方法修飾符 run(){//覆寫Thread類里的run()方法以線程處理的程序;} }下面的例子:
為什么實現(xiàn)了Runnable接口還需要調(diào)用Thread類中的start()方法才能啟動多線程?
通過看JDK文檔可以知道,Runnable接口中只有一個run()方法,并沒有start()方法。所以要用Thread類中的start()方法來啟動多線程。
Thread里有一個構(gòu)造方法:public Thread(Runnable target),在這個構(gòu)造方法中,用一個Runnable接口的實例化對象作為參數(shù)去實例化Thread類對象。
package com.thread;public class Test {public static void main(String args[]){TestThread t = new TestThread();//實例化一個TestThread類的對象new Thread(t).start();//通過TestThread類實例化一個Thread類的對象,之后調(diào)用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在運行 */總結(jié)
以上是生活随笔為你收集整理的java基础 通过继承Thread类和实现Runnable接口创建线程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟主机安装mysql_如何虚拟主机安装
- 下一篇: php callable 参数,php