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

الرؤية وعلاقة happens-before

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

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

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

في هذا الدرس

explain why a thread may not see another's write.

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

  • CPU caches and compiler reordering mean a write may not be visible to other threads.
  • The Java Memory Model defines happens-before: if A happens-before B, B sees A's writes.
  • Practical edges: unlock then lock of the same monitor; write then read of a volatile; Thread.start() and join(); executor submit then task run, and task completion then Future.get().
  • Without such an edge, a loop on a plain flag may never stop.
  • Visibility and atomicity are different problems.
تفاصيل المخطط المبدئي

عرض عملي

java
boolean running = true;                  // not volatile
while (running) { work(); }              // may spin forever

اختبر فهمك

Name two actions that create a happens-before edge.

أظهر الإجابة

Monitor unlock/lock, volatile write/read, start/join.

التطبيق

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

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

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

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