الـ Singleton عديم الحالة وأمان الخيوط (Thread safety)
في هذا الدرس 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
finaldependencies, data in method variables. - State that must be shared belongs in a database or a thread-safe type, handled later.
تفاصيل المخطط المبدئي
عرض عملي
@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.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.