直接調用線程的run方法是否可以啟動線程?


首先Thread類中run()和start()方法的區別如下:

        run()方法:在本線程內調用該Runnable對象的run()方法,可以重復多次調用;

        start()方法:啟動一個線程,調用該Runnable對象的run()方法,不能多次啟動一個線程;

 1 public class Test implements Runnable{
 2     public static void main(String[] args) {
 3         Test T = new Test();
 4         Test1 T1 = new Test1();
 5         
 6         Thread tt = new Thread(T, "t");
 7         Thread tt1 = new Thread(T1, "t1");
 8         
 9         tt.run();
10         System.out.println("aaaaaa");
11         tt1.run();
12         System.out.println("bbbbbb");
13     }
14     @Override
15     public void run() {
16         for(int i = 0 ; i < 10 ; i++){
17             System.out.println("第一個" + i);
18         }
19     }
20 }
21 class Test1 implements Runnable{
22 
23     @Override
24     public void run() {
25         for(int i = 0 ; i < 10 ; i++){
26             System.out.println("第二個" + i);
27         }
28     }
29 }
運行結果:
第一個0 第一個1 第一個2 第一個3 第一個4 第一個5 第一個6 第一個7 第一個8 第一個9 aaaaaa 第二個0 第二個1 第二個2 第二個3 第二個4 第二個5 第二個6 第二個7 第二個8 第二個9 bbbbbb

 

以上代碼顯示:run方法可以創建一個線程,但是相當於同步的方式,沒有多線程的存在。

只有調用start方法才是交給jvm管理,才是多線程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM