מאמרים עם התגית “multithreading”
8 מאמרים עם התגית “multithreading”, מהחדש לישן.
-
Win32 Thread Pool API — מקביליות בלי CreateThread, דרך CreateThreadpoolWork
מפזרים קריאות CreateThread בכל הקוד ה-native? המאמר מסביר את ה-Win32 Thread Pool API שעוצב מחדש ב-Vista: ארבעת האובייקטים work, timer, wait ו-io, cleanup gro...
-
DllMain ו-loader lock — הסיבה האמיתית שאומרים לכם לא לעשות כלום ב-DLL init
למה אסור לקרוא ל-LoadLibrary או להסתנכרן עם threads אחרים מתוך DllMain. המאמר מסביר ממקורות ראשוניים איך loader lock מסדר כל DLL notification, המקרים הקלאסיי...
-
מה Not Responding באמת אומר — איך Windows מחליט שיש hang, ואיך לתכנן אפליקציות שלא נתקעות
Not Responding של Windows הוא מנגנון שבו ה-OS קובע ש-window לא שלף message במשך 5 שניות ומחליפה אותו ב-ghost window. המאמר מכסה את פנים השיפוט, הסיבות הקלאסי...
-
Spurious wakeup — למה condition variable מתעורר בלי notify, ואיך לחכות נכון ב-Windows
Wait על condition variable יכול לחזור גם כשלא הגיע notify (spurious wakeup). המאמר מסביר ממימוש Windows למה המפרט מתיר זאת, ומציג את צורת ה-wait הנכונה — לול...
-
Best practices לריבוי threads בפועל: Java — המוסכמות בעידן ה-virtual threads
ב-Java הנוהג המבוסס ב-multithreading הוא לא ליצור threads ישירות אלא לבנות על ExecutorService ועל virtual threads. המאמר מציג את העקרונות המעשיים: בחירה בין ...
-
שיטות עבודה מומלצות ל-multithreading בפועל: מהדורת C — כתיבה בטוחה לפי Win32 API
הגישה המבוססת ל-multithreading ב-C מול Win32 היא יצירת thread עם _beginthreadex, SRW lock ו-condition variable, Interlocked, ו-stop event יחד עם WaitForMulti...
-
שיטות עבודה מומלצות ל-multithreading בפועל: מהדורת C++ — לבטל תאונות במבנה עם RAII ו-jthread
ב-C++, multithreading הוא עולם שבו data race הוא undefined behavior. המאמר עובר על מלכודת ה-destructor של std::thread, תכנון עצירה עם jthread ו-stop_token, ה...
-
שיטות עבודה מומלצות ל-multithreading בפועל: מהדורת .NET — מה להחליט לפני שמוסיפים threads
כללי תכנון שמונעים מקוד multithreaded ב-.NET/C# לקרוס או להיתקע מדי פעם: להשתמש ב-Task במקום ליצור threads בעצמכם, לצמצם shared mutable state, לשמור משמעת lo...