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

عدم القابلية للتغيير والحصر

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

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

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

في هذا الدرس

avoid locking by design.

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

  • Immutable objects (final fields, no setters, records) are safe to share freely.
  • Replace state by swapping a reference to a new immutable snapshot.
  • Thread confinement: data used by only one thread needs no lock (local variables, ThreadLocal).
  • Spring singletons are shared by all requests; keep them stateless or hold only thread-safe state.
  • Copy defensively when passing mutable data across threads.
تفاصيل المخطط المبدئي

عرض عملي

java
record StockSnapshot(Map<String,Integer> levels) {}   // copy on update, swap an AtomicReference

اختبر فهمك

Why is a Spring @Service with a mutable field risky?

أظهر الإجابة

One instance serves all requests concurrently.

التطبيق

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

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

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

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