小编Raj*_*Raj的帖子

java中的线程争用

我想了解下面的程序.如果我调用new ReaderThread().start()它工作正常,但如果我调用new ReaderThread().run(),应用程序进入无限循环.有什么不同?

public class Contention {

    private static boolean ready;
    private static int number;

    private static class ReaderThread extends Thread {
        public void run() {
                 while (!ready){
                System.out.println("ready ..."+ready);
                Thread.yield();}
            System.out.println(number);
           // }
        }
    }


    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new ReaderThread().run();
        number = 42;
        ready = true;

    }

}
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading

3
推荐指数
1
解决办法
895
查看次数

标签 统计

concurrency ×1

java ×1

multithreading ×1