[遇见时光]java多线程中run和start方法

本文详细解析了Java中线程的run()与start()方法的区别,通过具体实例展示了如何使用这两种方法来控制线程的执行顺序。run()方法作为线程执行体,直接调用时将顺序执行,而start()则用于启动线程,使线程有机会与其他线程并发执行。

run()方法是方法体,线程里要执行的内容;单独调用时按顺序执行(因为新建的线程还没开启);

start()开启一个线程;举个形象的例子就是长跑开始时,每个运动员反应不一样,反应快的就先执行;

Java例子:

 1 package test;
 2 
 3 public class RunAndStart {  
 4     public static void main(String[] args) {  
 5         Runner1 runner1 = new Runner1();  
 6         Runner2 runner2 = new Runner2();  
 7 //      Thread(Runnable target) 分配新的 Thread 对象。  
 8         Thread thread1 = new Thread(runner1);  
 9         Thread thread2 = new Thread(runner2);  
10         thread1.start();  
11         thread2.start();  
12 //        thread1.run();  
13 //        thread2.run();  
14     }  
15 }  
16   
17 class Runner1 implements Runnable { // 实现了Runnable接口,jdk就知道这个类是一个线程  
18     public void run() {  
19         for (int i = 0; i < 100; i++) {  
20             System.out.println("进入Runner1运行状态——————————" + i);  
21         }  
22     }  
23 }  
24   
25 class Runner2 implements Runnable { // 实现了Runnable接口,jdk就知道这个类是一个线程  
26     public void run() {  
27         for (int i = 0; i < 100; i++) {  
28             System.out.println("进入Runner2运行状态==========" + i);  
29         }  
30     }  
31 }  

start()执行结果是可能线程1、2交替出现

run()执行结果是先1执行完再执行2.

转载于:https://www.cnblogs.com/yujianshiguang/p/5962096.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值