java - 关于线程的强制运行的一个问题?
PHP中文网
PHP中文网 2017-04-17 17:57:58
0
1
368

class MyThread implements Runnable{
    
    @Override
    public void run() {
        // TODO Auto-generated method stub
        
        for(int i=0;i<10;i++){
            System.out.println(Thread.currentThread().getName());
        }
        
    }
    
}





public class Test {
    
    
    public static void main(String[] args) {
        MyThread my = new MyThread();
        Thread t = new Thread(my,"thread-a");
        t.start();
        
        for(int i=0;i<100;i++){
            System.out.println(i);
            if(i>50){
                try {
                    t.join();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
        }
        
    }

        

}

代码如上, 我知道在i>50 会强制t运行, 但是t.start()时 线程t 不就已经启动了吗?为什么在i<50时不会输出thread-a?

PHP中文网
PHP中文网

认证0级讲师

全員に返信(1)
黄舟

表示されるのは 1 回の実行の結果だけです (スレッドのスケジュール設定により、thread-a は i > 50 になるまで出力されない可能性があります)。さらに数回実行すると、必要な結果が表示されます。 🎜>

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