2020-10-10

 
package com.xiaolin93.multiprocess;

/**
 * description: PossibleReordering <br>
 * 验证指令重排序
 */
public class PossibleReordering {
    static int a = 0, b = 0;
    static int x = 0, y = 0;

    public static void main(String[] args) throws InterruptedException {
        int i=0;
        for(;;){
            i++;
            x=0;y=0;
            a=0;b=0;
            Thread one = new Thread(new Runnable() {
                public void run() {
                    a = 1;
                    x = b;
                }
            });

            Thread other = new Thread(new Runnable() {
                public void run() {
                    b = 1;
                    y = a;
                }
            });
            one.start();
            other.start();
            one.join();
            other.join();
            if (x == 0 && y == 0) {
                System.out.println("第"+i+"次");
                System.out.println("(" + x + "," + y + ")");
                break;
            }
        }
    }
}

 

 

可以看到大概运行到三百多万次才验证指令重排序


版权声明:本文为xiaolin93原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。