JavaRush /Blog Jawa /Random-JV /Volatile (conto ing kuliah 17)
dimaMJ
tingkat
Craiova

Volatile (conto ing kuliah 17)

Diterbitake ing grup
Umumé, ana conto c ing kuliah 17 volatile, ujar manawa variabel isCancelora digunakake volatile, banjur kanthi ngganti nilai variabel iki saka benang liyane, wong liya ora bakal ngerti babagan iki, aku nulis ulang conto kasebut, mung. ing metode kasebut runjeneng benang lan nilai ditampilake isCancellan ternyata preduli gumantung saka variabel saiki volatileutawa ora, nilai kasebut isih ganti kanggo kabeh aliran, sanajan sampeyan nuthuk, aku bingung; yen aku ngerti sinkronisasi, banjur aku volatilebingung lan ora bisa aplikasi ing sembarang cara. Mungkin aku salah nggawe conto? Aku uga nyoba nggawe kelas Clocklan warisan saka Thread, lan mainnggawe loro kedadean lan mbukak loro, iku uga volatileora bisa, bantuan kula, yen ora, aku bakal edan) Volatile (conto ing 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();
                }
            }
        }
    }
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION