TPL: Task VS Thread

שלום12134

New member
TPL: Task VS Thread

שלום לכולם,
רציתי לשאול: האם Tasks באמת פועלים במקביל? או שזה כמו Threads שזה נותן תחושה של מקביליות ויש פה context switching?
ואם זה באמת פועל במקביל, איך זה קורה?

שאלה נוספת, אשמח אם מישהו ייתן הסבר על ההבדלים בין tasks לבין threads...
תודה
 

Royi Namir

New member
>

מעל CORE אחד , יכולים( לא מובטח על ידי ה CLR , ניתן לקינפוג!) לפעול באמת במקביל. ( שים לב לסימן קריאה)
CORE אחד - אין מצב.

TASK זה מעטפת ל THREAD. שחושפת הרבה שימושים שעוזרים - מה שבלעדיו - היה הרבה יותר קשה לעשות.
 

שלום12134

New member
תודה על התשובה

האם מעל core אחד, גם thread מבצעים במקביל?
ואם יש אלפי tasks? אז גם שם מבוצע context switching?

המשפט האחרון שלך לא כ"כ מובן לי:"TASK זה מעטפת ל THREAD. שחושפת הרבה שימושים שעוזרים - מה שבלעדיו - היה הרבה יותר קשה לעשות", תוכל לפרט יותר?
 

Royi Namir

New member
>

ב CORE אחד רק THREAD אחד יכול לרוץ על פעם.

ואם יש אלפי - אז יש CONTEXTSWITCH
נא שים לב שמספר פעולות IO כן יכולות לרוץ במקביל (אמיתי). אבל הם לא רצות על ה CPU , הם מבוצעות על ה DEVICE עצמו ולאחר שהם מסתיימות ישנה קריאה של COMPLETION PORT מה שגורם להמשכת הרצת THREAD.

דוגמא למעטפת עוזרת : CONTINUATION , ASYNC
EXCEPTION AND CONTEXT HANDLEING
 
למעלה