13-09-2016, 00:13
|
|
|
|
חבר מתאריך: 12.06.15
הודעות: 136
|
|
ציטוט:
במקור נכתב על ידי שימי
אם כך, כנראה שפספסתי. עמך הסליחה.
לגבי העריכה: לא אם ערכת מהר. בכמה דקות הראשונות יש "זמן חסד" שבו עריכות אינן נרשמות כעריכה, זמן תיקון שגיאות כתיב וכו' (תמיד יש את הקטע הזה ששמים לב לטעויות שנייה אחרי שלוחצים על "שלח"). רק שעבר זמן מהותי, וייתכן שאנשים אחרים כבר התחילו לקרוא את ההודעה ו/או להגיב לה אם נעשתה בכל זאת עריכה, הדבר נכתב כדי שמי שקורא אחרי זה את ההודעה המקורית ותגובות אליה, ידע שייתכן שההודעה כפי שהיא נראית עכשיו, לא נראתה כך בהכרח עבור מי שהגיב אליה, שזה בדיוק הסיפור שתהיתי אם קרה...
בכל אופן, בפשטות, כדי לנצל את כל המעבד, מה שעלייך לעשות זה לחלק משימה גדולה לתתי משימות קטנות יותר שאינן תלויות אחת בשנייה (כלומר, משימות א' ו-ב' יכולות לרוץ באותו זמן כיוון שב' לא משתמש בקלט מ-א' ולהפך[*]), ולהריץ אותן בתהליכים או ב Thread-ים שונים, ואז כמובן תוכל לנצל את המעבד יותר.
[*] יוצא דופן לשימוש מקבילי ואפשרי בקלט מתהליך אחר הוא כשהקלט הוא מסוג סטרימינג. כלומר אם באופן קבוע משימה א' פולטת מידע כל הזמן (בוא נקרא לזה producer) ומשימה ב' קולטת מידע כל הזמן ממשימה א' (בוא נקרא לזה consumer) אז בעצם הן יכולות לעבוד במקביל מבלי להחסם (כשאתה קורא מידע ממקום אחר ואין מידע זמין, אין ברירה, התהליך הקורא נעצר עד שיש מידע זמין). אבל אם א' מכינה כמות גדולה של מידע ורק כשהיא מסיימת היא שופכת את הפלט אל ב', אז שוב תגיע למצב שרק ליבה אחת מנוצלת מתחילת התוכנה עד סיומה, וזאת משום שב' תחכה עד שא' תסיים, וכשא' תסיים וב' תוכל לעבוד, א' כבר לא תעשה כלום, ושוב יש תהליך בודד שעושה עבודה בפועל בכל רגע נתון.
|
בנוגע לעריכה, ייתכן מאוד. אינני זוכר
בנוגע להסבר, הבנתי, תודה רבה.
_____________________________________
|