JavaRush /Blog Java /Random-MS /Tidak menentu (contoh dalam kuliah 17)
dimaMJ
Tahap
Craiova

Tidak menentu (contoh dalam kuliah 17)

Diterbitkan dalam kumpulan
Secara umum, terdapat contoh c dalam kuliah 17 volatile, ia mengatakan bahawa jika pembolehubah isCanceltidak digunakan volatile, maka dengan menukar nilai pembolehubah ini dari benang lain, selebihnya tidak akan mengetahuinya, saya menulis semula contoh, hanya dalam kaedah runnama benang dan nilai dipaparkan isCanceldan ternyata tidak kira bergantung pada sama ada pembolehubah itu ada volatileatau tidak, nilai masih berubah untuk semua aliran, walaupun anda mengetuk, saya keliru sepenuhnya; jika saya mengetahui penyegerakan, maka saya volatilekeliru dan tidak boleh menggunakannya dalam apa jua cara. Mungkin saya mencipta contoh yang salah entah bagaimana? Saya juga cuba mencipta kelas Clockdan mewarisi daripada Thread, dan mainmencipta dua kejadian dan menjalankan kedua-duanya, ia juga volatiletidak berjaya, bantu saya, jika tidak, saya akan menjadi gila) Tidak menentu (contoh dalam kuliah 17) - 1
public static void main(String[] args)
    {
       Clock n = new Clock();

        Thread thread1 = new Thread(n);
        Thread thread2 = new Thread(n);
        thread1.start();
        thread2.start();

        try
        {
            Thread.sleep(3000);
        }
        catch (InterruptedException e)
        {
            e.printStackTrace();
        }

        n.cancel();

    }

    public static class Clock implements Runnable
    {
        private volatile boolean isCancel = false;

        public void cancel()
        {
            this.isCancel = true;
        }

        @Override
        public void run()
        {
            while (true)
            {

                try
                {   System.out.println(Thread.currentThread().getName()+" "+isCancel);
                    Thread.sleep(2000);
                }
                catch (InterruptedException e)
                {
                    e.printStackTrace();
                }
            }
        }
    }
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION