java - new了2个Thread,为什么不是交叉打印?
PHPz
PHPz 2017-04-18 10:27:18
0
13
1510
public static void main(String[] args){

        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i=0; i<10; i++){
                    System.out.print(i+" ");
                }
            }
        }).start();

        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i=0; i<10; i++){
                    System.out.print(i+" ");
                }
            }
        }).start();
    }

输出结果如下:

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 
PHPz
PHPz

学习是最好的投资!

全員に返信(13)
阿神

1. スレッド ロックの順序を制御して一貫性を保つには、java.util.concurrent.locks パッケージの柔軟なロックを使用できます。
2. java.util.concurrent.atomic パッケージのアトミック クラスを使用します。

いいねを押す +0
巴扎黑

CPU の実行が速すぎます。最初のスレッドの実行がすぐに終了しました。2 番目のスレッドがまだ作成されていない可能性があります。ループの値を 1000 に変更してみてください。効果は確実に確認できます。そうではありません、混乱します

いいねを押す +0
小葫芦

CPU実行タスクは順不同で実行され、複数スレッド間の同期が保証されないため、順序を保証したい場合は同期制御を行う必要があります

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート