JavaRush /جاوا بلاگ /Random-UR /اتار چڑھاؤ (لیکچر 17 میں مثال)
dimaMJ
سطح
Craiova

اتار چڑھاؤ (لیکچر 17 میں مثال)

گروپ میں شائع ہوا۔
عام طور پر لیکچر 17 میں c کی ایک مثال موجود ہے volatile، اس میں کہا گیا ہے کہ اگر کوئی متغیر isCancelاستعمال نہیں کیا جاتا ہے volatile، تو اس متغیر کی قدروں کو کسی اور تھریڈ سے تبدیل کرنے سے، باقیوں کو اس کے بارے میں معلوم نہیں ہوگا، میں نے مثال دوبارہ لکھی، صرف طریقہ کار میں runتھریڈ کا نام اور قدر ظاہر ہوتی ہے isCancelاور پتہ چلا کہ متغیر کے موجود ہونے volatileیا نہ ہونے کے لحاظ سے، قدر اب بھی تمام بہاؤ کے لیے تبدیل ہوتی ہے، یہاں تک کہ اگر آپ دستک دیتے ہیں، میں مکمل طور پر الجھن میں ہوں؛ اگر میں ہم وقت سازی کا پتہ لگایا، پھر میں volatileالجھن میں ہوں اور اسے کسی بھی طرح لاگو نہیں کر سکتا۔ ہوسکتا ہے کہ میں نے مثال کو کسی طرح غلط بنایا ہو؟ میں نے کلاس بنانے کی بھی کوشش کی Clockاور اس سے inherit 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