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

عرض عملي: إعادة إنتاج حالة تسابق باختبار إجهاد

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

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

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

في هذا الدرس

prove a race exists before fixing it; prepares MID-004-LAB1.

تفاصيل المخطط المبدئي

خطوة بخطوة

  1. Write StockCounter with reserve(int) using check-then-act.
  2. Stress test: 100 threads each reserve 1 unit from 1,000, started together with a CountDownLatch; assert final stock is 900.
  3. Run repeatedly; the test fails intermittently (stock above 900, or oversold).
  4. Planned mistake: add volatile to the field and re-run; it still fails. Explain: visibility is not atomicity.
  5. Fix with synchronized; the test passes across many runs.
  6. Note that a passing run is evidence only when the test failed before the fix.

التطبيق

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

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

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

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