JavaRush /Блоги Java /Random-TG /Ноустувор (мисол дар лексияи 17)
dimaMJ
Сатҳи
Craiova

Ноустувор (мисол дар лексияи 17)

Дар гурӯҳ нашр шудааст
Умуман, дар лексияи 17 як мисоли c мавҷуд аст volatile, дар он гуфта мешавад, ки агар тағирёбанда isCancelистифода нашавад volatile, пас бо тағир додани арзишҳои ин тағирёбанда аз риштаи дигар, дигарон дар бораи он намедонанд, ман мисолро аз нав навиштам, танҳо дар усул runноми ришта ва арзиш нишон дода мешавад isCancelва маълум шуд, ки новобаста аз он ки тағирёбанда мавҷуд аст volatileё не, қимат барои ҳама ҷараёнҳо тағир меёбад, ҳатто агар шумо бикӯбед, ман комилан ошуфтаам; агар ман синхронизатсияро фаҳмидам, пас ман volatileошуфта шудам ва онро ба ҳеҷ ваҷҳ татбиқ карда наметавонам. Шояд ман мисолро бо ягон роҳ нодуруст эҷод кардам? Ман инчунин кӯшиш кардам, ки синф эҷод кунам Clockва аз - мерос гирам Threadва mainду мисол эҷод кунам ва ҳардуро иҷро кунам, он ҳам volatileкор накард, ба ман кӯмак кунед, вагарна ман девона мешавам) Ноустувор (мисол дар лексияи 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();
                }
            }
        }
    }
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION