A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 以梦为马123 中级黑马   /  2015-8-26 00:26  /  447 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 要暂停,让其他同权限的线程获得执行的机会?求解!!
        }

1 个回复

正序浏览
额,线程礼让不是绝对地,只是大致地两者轮流
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马