JAVA完成多線程的兩種辦法實例分享。本站提示廣大學習愛好者:(JAVA完成多線程的兩種辦法實例分享)文章只能為提供參考,不一定能成為您想要的結果。以下是JAVA完成多線程的兩種辦法實例分享正文
java說話曾經內置了多線程支撐,一切完成Runnable接口的類都可被啟動一個新線程,新線程會履行該實例的run()辦法,當run()辦法履行終了後,線程就停止了。一旦一個線程履行終了,這個實例就不克不及再從新啟動,只能從新生成一個新實例,再啟動一個新線程。
Thread類是完成了Runnable接口的一個實例,它代表一個線程的實例,而且,啟動線程的獨一辦法就是經由過程Thread類的start()實例辦法:
Thread t = new Thread();
t.start();
start()辦法是一個native辦法,它將啟動一個新線程,並履行run()辦法。Thread類默許的run()辦法甚麼也不做就加入了。留意:直接挪用run()辦法其實不會啟動一個新線程,它和挪用一個通俗的java辦法沒有甚麼差別。
是以,有兩個辦法可以完成本身的線程:
辦法1:本身的類extend Thread,並復寫run()辦法,便可以啟動新線程並履行本身界說的run()辦法。例如:
public class MyThread extends Thread {
public run() {
System.out.println("MyThread.run()");
}
}
在適合的處所啟動線程:new MyThread()。start();
辦法2:假如本身的類曾經extends另外一個類,就沒法直接extends Thread,此時,必需完成一個Runnable接口:
public class MyThread extends OtherClass implements Runnable {
public run() {
System.out.println("MyThread.run()");
}
}
為了啟動MyThread,須要起首實例化一個Thread,並傳入本身的MyThread實例:
MyThread myt = new MyThread();
Thread t = new Thread(myt);
t.start();
現實上,當傳入一個Runnable target參數給Thread後,Thread的run()辦法就會挪用target.run(),參考JDK源代碼:
public void run() {
if (target != null) {
target.run();
}
}