java为什么要有序,为什么这样启动线程,线程执行是有序的?

创建线程需要时间,相对于第二种直接new start创建线程时间更少,因为不需要赋值

可以参考这个回答:

https://segmentfault.com/q/10...

我自己做的测试:

package test;

public class Test2 {

public static void main(String[] args) {

// new Thread(()->{System.out.println("A");}).start();

// new Thread(()->{System.out.println("B");}).start();

// new Thread(()->{System.out.println("C");}).start();

// new Thread(()->{System.out.println("D");}).start();

final int k=50;

new Thread() {

public void run() {

//System.out.println("A");

int a=0;

for (int i = 0; i < k; i++) {

a++;

System.out.println("A:"+i);

}

}

}.start();

new Thread() {

public void run() {

//System.out.println("B");

for (int i = 0; i < k; i++) {

System.out.println("B:"+i);

}

}

}.start();

new Thread() {

public void run() {

//System.out.println("C");

for (int i = 0; i < k; i++) {

System.out.println("C:"+i);

}

}

}.start();

new Thread() {

public void run() {

//System.out.println("D");

for (int i = 0; i < k; i++) {

System.out.println("D:"+i);

}

}

}.start();

}

}

//测试结果

A:0

A:1

A:2

A:3

A:4

A:5

A:6

A:7

A:8

A:9

A:10

A:11

A:12

A:13

A:14

A:15

A:16

A:17

A:18

A:19

A:20

A:21

A:22

A:23

A:24

B:0

B:1

B:2

B:3

B:4

B:5

A:25

A:26

A:27

A:28

A:29

A:30

A:31

A:32

A:33

A:34

A:35

A:36

B:6

B:7

B:8

A:37

A:38

B:9

C:0

C:1

C:2

C:3

C:4

C:5

C:6

C:7

C:8

C:9

C:10

C:11

C:12

C:13

C:14

C:15

C:16

C:17

C:18

C:19

C:20

B:10

B:11

B:12

B:13

B:14

B:15

B:16

B:17

B:18

B:19

B:20

B:21

B:22

B:23

B:24

B:25

B:26

B:27

B:28

B:29

B:30

B:31

B:32

B:33

B:34

B:35

B:36

B:37

B:38

B:39

B:40

B:41

B:42

B:43

B:44

B:45

B:46

B:47

B:48

B:49

A:39

A:40

C:21

C:22

C:23

C:24

C:25

C:26

C:27

C:28

C:29

D:0

D:1

D:2

D:3

D:4

D:5

D:6

D:7

D:8

D:9

D:10

D:11

D:12

D:13

D:14

C:30

C:31

C:32

C:33

C:34

C:35

C:36

C:37

C:38

A:41

A:42

A:43

A:44

C:39

C:40

C:41

C:42

C:43

C:44

C:45

C:46

C:47

C:48

C:49

D:15

D:16

A:45

A:46

A:47

A:48

A:49

D:17

D:18

D:19

D:20

D:21

D:22

D:23

D:24

D:25

D:26

D:27

D:28

D:29

D:30

D:31

D:32

D:33

D:34

D:35

D:36

D:37

D:38

D:39

D:40

D:41

D:42

D:43

D:44

D:45

D:46

D:47

D:48

D:49

当我将k设置为50时是能看出来的线程并不是按顺序执行的,而是线程启动需要时间,所以说在第二个线程启动的时候,第一个线程已经执行了一段时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值