黑马程序员技术交流社区

标题: 线程中 yield 方法 [打印本页]

作者: 以梦为马123    时间: 2015-8-26 00:26
标题: 线程中 yield 方法
Java se中,线程中 yield 方法,两个相同权限的线程 t1 和 t2
                public class TestYield {
                public static void main(String[] args) {
                Mythread3 t1 = new Mythread3("t1");
                Mythread3 t2 = new Mythread3("t2");
                t1.setPriority(Thread.NORM_PRIORITY);
                t2.setPriority(Thread.NORM_PRIORITY);
                t1.start();
                t2.start();
                }
                }

                class Mythread3 extends Thread {
                Mythread3(String s) {
                super(s);
                }
                public void run() {
                for(int i=1; i<=100; i++) {
                System.out.println(getName() + " :" + i);
                if(i % 10 == 0) {
                yield();
                }
                }
                }
                }
                为什么,t1 调用yield() 方法后,有可能不是 t2线程 执行,而还是 t1 线程继续执行,并没有表现出 t1 要暂停,让其他同权限的线程获得执行的机会?求解!!
        }


作者: aguang    时间: 2015-8-26 10:37
额,线程礼让不是绝对地,只是大致地两者轮流




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2