انتقل إلى المحتوى
أمين أبوزيد
درس مخطط لهJNR-010-L05

الـ Singleton عديم الحالة وأمان الخيوط (Thread safety)

  • الدرس 5 من 6
  • Junior
في هذا الدرس 4 موضوعات

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

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

في هذا الدرس

explain why singletons must not hold request state.

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

  • One singleton serves many requests at the same time, on many threads.
  • A mutable field (a counter, "current user") is shared by all of them: races and wrong data.
  • Keep singletons stateless: only final dependencies, data in method variables.
  • State that must be shared belongs in a database or a thread-safe type, handled later.
تفاصيل المخطط المبدئي

عرض عملي

java
@Service class BadService { private int lastTotal; /* shared across requests! */ }

اختبر فهمك

Why is private int lastTotal in a service a bug?

أظهر الإجابة

Many requests share and overwrite it.

التطبيق

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

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

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

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