דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. async או thread

async או thread

מתוזמן נעוץ נעול הועבר ארכיון code613m
9 פוסטים 2 כותבים 528 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    אבי
    כתב ב נערך לאחרונה על ידי
    #1

    אני בונה אפליקציית webAPI ב ASP.NET.
    אני לא שואל לגבי הפונקציות של ה API ב Controller, שהם צריכות להיות אסינכרוניות כדי לאפשר קריאות רבות בו זמנית.
    השאלה שלי היא בנקודה אחרת (שאינה קשורה ל webAPI, רק ציינתי את זה למקרה ויש הבדל בביצוע): אני מתחבר לשרת צד ג באמצעות API, ושם יש לי אירוע שמתרחש בעת הוספת משתמש חדש לדוגמא, כשהאירוע נקרא אני רוצה להפעיל אצלי כמה פונקציות בלי לפספס באותו זמן קליטת אירועים נוספים מסוג האירוע הזה ומסוגים אחרים, האם כאן מתאים יותר async או thread?

    תודה

    פורסם במקור בפורום CODE613 ב06/03/2017 16:38 (+02:00)

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      קודם כל בASP.NET כל request זה טריד בפני עצמו. טריד שנוצר אחריו יכול לעקוף אותו ושימוש במשאב משותף (כמו משתנה סטטי) צריך להיעשות תוך לקיחה בחשבון את האסינכרוניות.
      @אבי

      ושם יש לי אירוע שמתרחש בעת הוספת משתמש חדש לדוגמא, כשהאירוע נקרא אני רוצה להפעיל אצלי כמה פונקציות בלי לפספס באותו זמן קליטת אירועים נוספים מסוג האירוע הזה ומסוגים אחרים

      לא ברור מה אתה מפחד לפספס. אין בחיים מצב של פספוס יש מצב של אי סדר. אם תפרט מה אתה חושש יהיה קל יותר לייעץ.

      פורסם במקור בפורום CODE613 ב06/03/2017 20:09 (+02:00)

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      1
      • א מנותק
        א מנותק
        אבי
        כתב ב נערך לאחרונה על ידי
        #3

        @דוד ל.ט.

        לא ברור מה אתה מפחד לפספס. אין בחיים מצב של פספוס יש מצב של אי סדר. אם תפרט מה אתה חושש יהיה קל יותר לייעץ.

        כתבתי. לפספס טיפול באירועים אחרים שנקלטים, אירועים מאותו סוג או אירועים אחרים.
        תודה

        פורסם במקור בפורום CODE613 ב06/03/2017 23:03 (+02:00)

        תגובה 1 תגובה אחרונה
        0
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          טוב, אתה כתבת ואני לא הבנתי ואתה אכן כתבת אבל אני אכן לא הבנתי 🙂

          אז אם אם אני מבין נכון שאתה חושב שבגלל בו זמניות יהיה איזה "אירוע" כלומר לא תופעל מתודה כל שהיא וכדומה, אז אתה יכול להיות רגוע לגמרי. לא זה הסיכונים של בו זמניות. הבעיה מתחילה כשיש קשר בין דברים שנעשים בו זמנית, למשל כשאתה שם במשתנה סטטי מידע ששייך לפעולה אחת והוא נכתב מחדש ע"י האחרת, או אתה מתבסס על ערך שיש בו ועד שאתה פועל הערך כבר שונה וכדומה.

          פורסם במקור בפורום CODE613 ב07/03/2017 00:37 (+02:00)

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          0
          • א מנותק
            א מנותק
            אבי
            כתב ב נערך לאחרונה על ידי
            #5

            כנראה לא הסברתי את עצמי טוב.
            כשמתרחש בשרת הוספת משתמש חדש, האירוע באפליקציה שלי מופעל, ומפעיל מתודה כל שהיא, נניח מתודה שמדפיסה אותו 100000 פעמים, משהו שלוקח זמן..
            בזמן שהמתודה הזאת מדפיסה ומדפיסה, התווסף עוד משתמש חדש, מה קורה אז? האירוע אצלי באפליקציה מופעל שוב? ממתין? או שהוא עסוק עם ההדפסה הקודמת?
            כנ"ל לגבי אירועים אחרים שמתרחשים בשרת ואמורים להיקלט ע"י אירועים שונים באפליקציה, מה קורה איתם?

            תודה

            פורסם במקור בפורום CODE613 ב07/03/2017 10:39 (+02:00)

            תגובה 1 תגובה אחרונה
            0
            • dovidD מחובר
              dovidD מחובר
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              מה שקורה הוא הפעלה בו זמנית של המשהו שלוקח זמן אין בזה בד"כ שום בעיה. אבל כיון שזה לוקח זמן כדאי להשתמש עם async (כלומר Task) לא בגלל בעיית ה"בו זמניות" אלא בשביל לא לתקוע את הטריד של התשובה (לא מבין אבל ככה אני יודע). טריד מיותר פה כי בכל מקרה זה רץ ברטיד שונה.

              פורסם במקור בפורום CODE613 ב07/03/2017 11:19 (+02:00)

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              0
              • א מנותק
                א מנותק
                אבי
                כתב ב נערך לאחרונה על ידי
                #7

                כל אירוע מופעל בטריד אחר?
                ולמה בבקשות APIזה לא כך?

                פורסם במקור בפורום CODE613 ב09/03/2017 10:57 (+02:00)

                תגובה 1 תגובה אחרונה
                0
                • dovidD מחובר
                  dovidD מחובר
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי
                  #8

                  @אבי

                  כל אירוע מופעל בטריד אחר?

                  כל אירוע שייך לטריד שהפעיל אותו.
                  @אבי

                  ולמה בבקשות APIזה לא כך?

                  כל בקשה היא [u:2agpjtqj]כן[/u:2agpjtqj] טריד אחר (אלא"כ הבקשה הקודמת נגמרה שאז נעשה שימוש חוזר בטריד הקודם).
                  תוכל להיווכח בכך אם תוסיף לתשובה את הערך Thread.CurrentThread.ManagedThreadId ותראה שהוא משתנה.

                  פורסם במקור בפורום CODE613 ב09/03/2017 11:55 (+02:00)

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD מחובר
                    dovidD מחובר
                    dovid ניהול
                    כתב ב נערך לאחרונה על ידי
                    #9

                    האמת שכעת אני שם לב שלא הבנתי אותך. אתה כותב מפורש שידוע לך שפונקציות הAPI הם בטרידים שונים בהודעה הפותחת.
                    לא מבין בדיוק מה השאלה אבל סתם בבחירה בין Task לבין Thread אז בפעולות רשת לך על Task.

                    פורסם במקור בפורום CODE613 ב09/03/2017 12:13 (+02:00)

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    0

                    בא תתחבר לדף היומי!
                    • התחברות

                    • אין לך חשבון עדיין? הרשמה

                    • התחברו או הירשמו כדי לחפש.
                    • פוסט ראשון
                      פוסט אחרון
                    0
                    • דף הבית
                    • קטגוריות
                    • פוסטים אחרונים
                    • משתמשים
                    • חיפוש
                    • חוקי הפורום