../images/Emo41.gif עקב מגבלת הזמן אנסה לתמצת:
בג'אווה יש מנגנון סינכרוניזציה. המנגנון הזה תמיד מסתמך על אובייקט ספציפי - כלומר האובייקט יכול לשמש כמסנכרן - אפשר לחכות עליו עד שהוא משתחרר וכדומה. בתוך בלוק מסונכרן יכול לשהות רק תהליך אחד שתפס את הסמפור הרלוונטי. בקוד זה נראה ככה:
public class MyClass { public MyClass (Object mutex) { mMutex = mutex; } public doSomething1 () { synchronize(mMutex) { // this code is synchronized using mMutex } } public doSomething2 () { // this code is synchronized using THIS } /** The mutex received via construction */ protected Object mMutex = null; }
צריך תמיד לזכור שקוד מסונכרן הוא יקר ואיטי, ותמיד צריך לנסות להשתמש בחלופות של wake-ups במקום לסנכרן אובייקטים.