线程中yield()方法的一个奇怪的问题

来源:互联网 发布:设计班服要用什么软件 编辑:程序博客网 时间:2024/05/01 06:43

今天做了个关于yield方法的一个小例子测试,

一个线程循环50次,用变量i标记,并每次输出当前循环到第几次(输出i),

当i为整10的数时调用yield方法(if(0 == i%10))

本以为一个这么小的例子应该不会出什么问题,结果。。。。

下面贴出源代码和4次测试结果

源代码:

public class TestYield {public static void main(String[] args) {Thread4 t1 = new Thread4("1");Thread4 t2 = new Thread4("2");t1.start();t2.start();}}class Thread4 extends Thread {public Thread4(String name) {super(name);}public void run() {for(int i=1; i<=50; i++) {System.out.println("thread "+getName()+":"+i);if(0 == i%10) {yield();}}}}

结果1:

thread 1:1thread 1:2thread 1:3thread 1:4thread 1:5thread 1:6thread 1:7thread 1:8thread 1:9thread 1:10thread 2:1thread 2:2thread 2:3thread 2:4thread 2:5thread 2:6thread 2:7thread 2:8thread 2:9thread 2:10thread 1:11thread 1:12thread 2:11thread 2:12thread 2:13thread 2:14thread 2:15thread 2:16thread 2:17thread 1:13thread 1:14thread 1:15thread 1:16thread 1:17thread 1:18thread 1:19thread 1:20thread 2:18thread 2:19thread 2:20//这里异常thread 2:21thread 2:22thread 2:23thread 2:24thread 2:25thread 2:26thread 2:27thread 2:28thread 2:29thread 2:30//这里异常thread 2:31thread 2:32thread 1:21thread 1:22thread 1:23thread 1:24thread 1:25thread 1:26thread 1:27thread 1:28thread 1:29thread 1:30//这里异常thread 1:31thread 1:32thread 1:33thread 1:34thread 1:35thread 1:36thread 1:37thread 1:38thread 1:39thread 1:40thread 2:33thread 2:34thread 2:35thread 2:36thread 2:37thread 2:38thread 2:39thread 2:40thread 1:41thread 1:42thread 1:43thread 2:41thread 2:42thread 2:43thread 2:44thread 2:45thread 2:46thread 2:47thread 2:48thread 2:49thread 2:50thread 1:44thread 1:45thread 1:46thread 1:47thread 1:48thread 1:49thread 1:50
结果2:

thread 1:1thread 1:2thread 1:3thread 1:4thread 2:1thread 2:2thread 2:3thread 2:4thread 2:5thread 2:6thread 2:7thread 2:8thread 2:9thread 2:10thread 1:5thread 1:6thread 1:7thread 1:8thread 1:9thread 1:10thread 2:11thread 2:12thread 2:13thread 2:14thread 2:15thread 2:16thread 2:17thread 2:18thread 2:19thread 2:20//这里异常thread 2:21thread 2:22thread 2:23thread 2:24thread 2:25thread 2:26thread 2:27thread 2:28thread 2:29thread 2:30//这里异常thread 2:31thread 2:32thread 2:33thread 2:34thread 2:35thread 2:36thread 2:37thread 2:38thread 2:39thread 2:40//这里异常thread 2:41thread 2:42thread 2:43thread 2:44thread 2:45thread 2:46thread 2:47thread 2:48thread 2:49thread 2:50thread 1:11thread 1:12thread 1:13thread 1:14thread 1:15thread 1:16thread 1:17thread 1:18thread 1:19thread 1:20thread 1:21thread 1:22thread 1:23thread 1:24thread 1:25thread 1:26thread 1:27thread 1:28thread 1:29thread 1:30thread 1:31thread 1:32thread 1:33thread 1:34thread 1:35thread 1:36thread 1:37thread 1:38thread 1:39thread 1:40thread 1:41thread 1:42thread 1:43thread 1:44thread 1:45thread 1:46thread 1:47thread 1:48thread 1:49thread 1:50

结果3:

thread 1:1thread 1:2thread 1:3thread 1:4thread 1:5thread 1:6thread 1:7thread 1:8thread 1:9thread 1:10//这里异常thread 1:11thread 1:12thread 1:13thread 1:14thread 1:15thread 1:16thread 1:17thread 1:18thread 1:19thread 1:20//这里异常thread 1:21thread 1:22thread 1:23thread 1:24thread 1:25thread 1:26thread 1:27thread 1:28thread 1:29thread 1:30//这里异常thread 1:31thread 2:1thread 2:2thread 2:3thread 2:4thread 2:5thread 2:6thread 2:7thread 2:8thread 2:9thread 2:10thread 1:32thread 1:33thread 1:34thread 1:35thread 1:36thread 1:37thread 1:38thread 1:39thread 1:40thread 2:11thread 2:12thread 2:13thread 2:14thread 2:15thread 2:16thread 2:17thread 2:18thread 2:19thread 2:20thread 1:41thread 1:42thread 1:43thread 1:44thread 1:45thread 1:46thread 1:47thread 1:48thread 1:49thread 1:50thread 2:21thread 2:22thread 2:23thread 2:24thread 2:25thread 2:26thread 2:27thread 2:28thread 2:29thread 2:30thread 2:31thread 2:32thread 2:33thread 2:34thread 2:35thread 2:36thread 2:37thread 2:38thread 2:39thread 2:40thread 2:41thread 2:42thread 2:43thread 2:44thread 2:45thread 2:46thread 2:47thread 2:48thread 2:49thread 2:50

结果4:

thread 1:1thread 1:2thread 1:3thread 1:4thread 1:5thread 1:6thread 1:7thread 2:1thread 2:2thread 2:3thread 2:4thread 2:5thread 2:6thread 2:7thread 2:8thread 2:9thread 2:10thread 1:8thread 1:9thread 1:10thread 2:11thread 2:12thread 2:13thread 2:14thread 2:15thread 2:16thread 2:17thread 2:18thread 2:19thread 2:20//这里异常thread 2:21thread 2:22thread 2:23thread 2:24thread 2:25thread 2:26thread 2:27thread 1:11thread 2:28thread 2:29thread 2:30thread 1:12thread 1:13thread 1:14thread 1:15thread 1:16thread 1:17thread 1:18thread 1:19thread 1:20thread 2:31thread 2:32thread 2:33thread 2:34thread 2:35thread 2:36thread 2:37thread 2:38thread 2:39thread 2:40//这里异常thread 2:41thread 2:42thread 2:43thread 2:44thread 2:45thread 2:46thread 2:47thread 2:48thread 2:49thread 2:50thread 1:21thread 1:22thread 1:23thread 1:24thread 1:25thread 1:26thread 1:27thread 1:28thread 1:29thread 1:30thread 1:31thread 1:32thread 1:33thread 1:34thread 1:35thread 1:36thread 1:37thread 1:38thread 1:39thread 1:40thread 1:41thread 1:42thread 1:43thread 1:44thread 1:45thread 1:46thread 1:47thread 1:48thread 1:49thread 1:50

运行4次,每次都有异常

求解?

原创粉丝点击