直接调用线程的run方法是否可以启动线程?

2018-08-17 09:40:56来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

首先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管理,才是多线程。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:记录一次使用Ajax进行分页和MyBatis的学习...

下一篇:Java知识点梳理——泛型