synchronized در جاوا چگونه کار می‌کند

خلاصه
1405/05/28

: `synchronized` در جاوا برای اطمینان از اینکه بلوک کد یا متد مشخص شده، توسط یک Thread در زمان معین تنها قابل دسترسی باشد (منحصر به فرد باشد)، استفاده می‌شود. این مکانیزم از ق

synchronized در جاوا چگونه کار می‌کند

: `synchronized` در جاوا برای اطمینان از اینکه بلوک کد یا متد مشخص شده، توسط یک Thread در زمان معین تنها قابل دسترسی باشد (منحصر به فرد باشد)، استفاده می‌شود.

این مکانیزم از قفل‌گذاری (Locking) استفاده می‌کند و تضمین می‌کند که عملیات‌های مشترک (Shared Resources) در محیط چندنخی (Multithreaded) ایمن باشند و از شرایط مسابقه (Race Conditions) جلوگیری شود.

**به طور خلاصه:**
1. **بلاک یا متد را قفل می‌کند:** وقتی یک Thread وارد متدی با کلیدواژه `synchronized` می‌شود، آن شیء (Object) را به عنوان یک منبع مشترک قفل می‌کند و هیچ Thread دیگری تا زمانی که عملیات تمام نشود، نمی‌تواند به این منابع دسترسی پیدا کند.
2. **تضمین همزمانی:** تضمین می‌کند که بلوک کد یا متد همیشه به‌صورت اتمیک (Atomic) اجرا شود؛ یعنی یا کاملاً انجام می‌شود یا اصلاً شروع نمی‌شود.