欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-04 16:30:26
首先Thread类中run()和start()方法的区别如下: run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用; start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程; 以上代码显示: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管理,才是多线程。