TGViewer
Python Hints Python Hints @pyhints · 10.2K subscribers
Post #1059 4.66K
class Engine():
_instance = None
_lock = threading.Lock()

def __new__(cls):
if cls._instance is None:
with cls._lock:
if cls._instance is None:
....


توی کد بالا بنظر شما چرا
if cls._instance
دوبار استفاده شده ؟
اگر بلد نیستید اشکالی نداره (قراره یاد بگیرید)

قبل از دیدن راهنمایی‌ها با دقت بهش فکر کنید ببینید متوجه دلیلش می‌شید ؟
راهنمایی:
به حالت async اجرای این Singleton فکر کنید


اسم این پترن : double check locking هست


یک سری موارد رو چندوقت پیش توی مصاحبه‌هام با شرکت‌های بزرگ دیدم؛‌ الان دارم روی یک پروژه کار می‌کنم این مورد رو نیاز داشتم پیاده‌سازی کنم گفتم همینارو سوال جواب کنم برای یادگیری دوستان.
  • 👍 75
More from @pyhints
  1. Oct 5, 2026#Quick@pyHints حالا که همه دارند از قابلیت Lazy import توی پایتون ۳.۱۵ میگن گفتم یادآوری ک…
  2. Oct 1, 2026تقریباً ۳ هفته‌اس دارم این پروژه رو میزنم با Rust, Tauri v2 و هرچی دوستان بیشتری تست می‌کن…
  3. Oct 1, 2026تم دیفالت Kanagawa هست و ۷ تم معروف دیگر ترمینال هم بصورت پیشفرض وجود داره (تم‌هایی که اضا…
  4. Sep 28, 2026git commit --allow-empty -m "from: develop" لطفا دستور بالا رو یاد بگیرید البته بخش commit…
  5. Sep 23, 2026می‌دونستید کل ارائه رو می‌تونید به comic book تبدیل کنید ؟ هر مدلی که Image generation داش…
  6. Sep 14, 2026ملت skill issue های خودشون رو میندازند گردن پایتون.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →