首先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管理,才是多线程。
如对本文有疑问, 点击进行留言回复!!
解决idea中出现“illegal character U+200B” 问题
荐 为什么加了@Transactional注解,事务没有回滚?
Attribute ‘sklearn.linear_model._logistic.LogisticRegression.multi_class‘ must be explicitly set to
Java/Python实现 LeetCode剑指Offer 14-I.剪绳子(动态规划)
网友评论