انتقل إلى المحتوى
أمين أبوزيد
درس مخطط لهMID-004-L03

synchronized والأقفال الداخلية

  • الدرس 3 من 9
  • Mid-level
في هذا الدرس 4 موضوعات

هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.

نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.

في هذا الدرس

use synchronized correctly.

الموضوعات المخطط لها

  • Every object has an intrinsic lock; synchronized gives 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/notify exist but higher-level tools are usually better.
تفاصيل المخطط المبدئي

عرض عملي

java
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.

التطبيق

طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.

المختبر والتمارين الاختبار

تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.

اكتب للبحث في المستويات والمراحل والوحدات والدروس.