synchronized والأقفال الداخلية
في هذا الدرس 4 موضوعات
هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.
نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.
في هذا الدرس
use synchronized correctly.
الموضوعات المخطط لها
- Every object has an intrinsic lock;
synchronizedgives mutual exclusion and visibility. - Synchronize the whole compound action, and use the same lock everywhere the data is touched.
- Do not lock on mutable fields, public objects, or
String/boxed values; use a private final lock object. - It is reentrant; keep critical sections short; never call unknown code while holding a lock.
wait/notifyexist but higher-level tools are usually better.
تفاصيل المخطط المبدئي
عرض عملي
private final Object lock = new Object();
void reserve(int qty) { synchronized (lock) { if (stock >= qty) stock -= qty; } }اختبر فهمك
Why not synchronized(this) in a public class?
أظهر الإجابة
Outside code can lock the same object and interfere.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.