\b;Instrukcja \c;synchronized\n; (dla specjalistów) Metoda \l;klasy\u cbot\class; może być zadeklarowana jako \c;synchronized\n;. Dzięki temu można zapewnić, że metoda będzie uruchamiana nie więcej niż przez jednego robota w tym samym czasie. Następujący przykład pomoże zilustrować problem: \c; \s;class blokowanie \s;{ \s; static int nb = 33; \s; synchronized int inc( ) \s; { \s; int val = nb; \s; wait ( 2 ); // czekaj 2 sekundy \s; nb = nb + 1; \s; return val; \s; } \s;} \n; Co się dzieje, gdy dwa roboty wykonają metodę \c;inc\n; w tym samym czasie¦? Oba wykonają polecenie \c;val=nb\n; i poczekają 2 sekundy, a więc oba otrzymają \c;val=33\n;. Gdy użyjemy instrukcji \c;synchronized\n; pierwszy robot rozpocznie wykonywanie z \c;val=33\n; poczeka 2 sekundy i wyjdzie z metody. Dopiero po zakończeniu wykonywania metody \c;inc\n; przez pierwszego robota, drugi robot będzie miał możliwość wykonania metody \c;inc\n;, wobec czego otrzyma on zawsze \c;val=34\n;. Można mieć więcej niż jedną zsynchronizowaną metodę w \l;klasie\u cbot\class; w celu zapobieżenia równoczesnemu wykonywaniu więcej niż jednej metody. Innymi słowy: tak długo, jak długo robot jest wewnątrz zsynchronizowanej metody, żaden inny robot nie może wykonywać żadnej zsynchronizowanej metody tej samej klasy. \t;Zobacz również \c;\l;klasa\u cbot\class;\n;, \c;\l;static\u cbot\static;\n; \l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.