Русский
Открыть в Telegram

Ветка سلام من این کدو نوشتم تا زمان اجرای هر thread رو ببینم، بر خلاف تصور هر اجرای thread دقیقا یک ثانیه بعد انجام نمیشه و گا…

9 сообщений · –
Z
سلام من این کدو نوشتم تا زمان اجرای هر thread رو ببینم، بر خلاف تصور هر اجرای thread دقیقا یک ثانیه بعد انجام نمیشه و گاهیی بیشتر از 1 و گاهی کمتر از 1 ثانیه طول میکشه، کسی میدونه چرا؟ import threading import time i=0 def task(): global t_period t_period1 = time.time() - t_period t_period = time.time() t=threading.Timer(1,task) t.start() print( t_period1 ) t_period = time.time() t=threading.Timer(1,task) t.start()
  1. У
    فک کنم درگیر race condition باشه و اینکه thread های پایتون روی یه core اجرا میشن و همزمانی ندارن معمولا 🧐
  2. M
    ثرد ها در پایتون باید GIL رو acquire و release کنن برای همین
    1. Z
      میشه لطفا واضح تر بگید، من متوجه نشدم😶
      1. M
        پایتون یک مکانیزم برای مدیریت حافظه داره به اسم Global interpreter lock یا GIL این گیل یک نوع قفل هست و نمیذاره همزمان دو تا ثرد به آبجکت‌های پایتون در مموری دسترسی داشته باشن برای همین هر ثرد که میخواد اجرا بشه گیل رو میگیره دستش (acquire) و بعدش ولش میکنه release این کار هزینه‌بر هست و خوبی‌ها و بدی‌های خودش رو داره
      2. У
        ببین وقتی اون thread تو دست میذاره رو یجای حافطه که ازش variable رو بخونه. اونجا رو قفل میکنه سیستم تا باعث مشکلات بیشتری نشه. اگه اینکارو نکنه و دو thread باهم یه مقداری رو تغییر بدن کار بهم مخوره مثلا thread اول مقدار ۵ رو میخونه همزمان thread دوم هم نقدار ۵ رو از حافظع میخونه حالا تو مرحله بعد اولی ۲ تا اضافه میکنه بهش.. مقدارش میشه ۷ حالا ۷ رو میذاره توی اون variable همینجا دومی همزمان ۳ تا از اون عدد ۵ ای که خونده بود کم میکنه و میشه ۲ حالا ۲ رو میذاره توی اونجای حافظه و اینجا کاملا اون مقداری که اولی نوشته بود و رونویسی میکنه برای همین قفلش میکنن منابع رو تا در آن واحد ینفر بیشتر بهش دسترسی نداشته باشه تا از این مشکلا جلوگیری شه

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем