Looking for java Keywords? Try Ask4Keywords

Java Language синхронизированный


пример

Синхронизированный модификатор используется для управления доступом определенного метода или блока несколькими потоками. Только один поток может входить в метод или блок, который объявляется как синхронизированный. синхронизированное ключевое слово работает на внутренней блокировке объекта, в случае синхронного метода блокировка текущих объектов и статический метод использует объект класса. Любой поток, пытающийся выполнить синхронизированный блок, должен сначала получить блокировку объекта.

class Shared
{
    int i;
 
    synchronized void SharedMethod()
    {
        Thread t = Thread.currentThread();
 
        for(int i = 0; i <= 1000; i++)
        {
            System.out.println(t.getName()+" : "+i);
        }
    }

    void SharedMethod2()
    {
        synchronized (this)
        {
            System.out.println("Thais access to currect object is synchronize "+this);
        }
    }
}
 
public class ThreadsInJava
{
    public static void main(String[] args)
    {
        final Shared s1 = new Shared();
 
        Thread t1 = new Thread("Thread - 1")
        {
            @Override
            public void run()
            {
                s1.SharedMethod();
            }
        };
 
        Thread t2 = new Thread("Thread - 2")
        {
            @Override
            public void run()
            {
                s1.SharedMethod();
            }
        };
 
        t1.start();
 
        t2.start();
    }
}