16-11-2015, 00:56
|
|
מנהל משבראש, בלשנות, תכנות ויהדות
|
|
חבר מתאריך: 04.06.06
הודעות: 33,130
|
|
|
ציטוט:
במקור נכתב על ידי פסטן
הבאת עכשיו שני מקרים קלים שבהם התוצאה די דטרמיניסטית
|
בכוונה בחרתי מקרים שבהם התוצאה דטרמיניסטית.
מי שלא מכיר את הקונספט של ה־event loop, עלול לטעות ולסבור שהיא אינה כזו, ולכן שאלתי על לולאה גדולה יותר.
ציטוט:
במקור נכתב על ידי פסטן
אבל הנה לך חידה בחזרה, בלי לבדוק, מה ידפיס הקוד הבא?
|
לכאורה היה אמור להיות מודפס בכולם המספרים בעלי שארית 0 מודולו 5 לפי הסדר (0, 5, 10, 15..), לאחריהם שארית 1, שארית 2 וכך הלאה.
אלא מאי, שזמן ההשהיה הולך וקטן עם הדוגמאות, כך שבשלב מסוים אמורים ה־timeouts לפוג ולהיכנס לתור עוד לפני שהלולאה מסתיימת, כך לדוגמא ה־timeout של 1 יסתיים עוד לפני שבכלל יתחיל ה־timeout של 5, ועל־כן יודפס לפניו.
כלומר לדעתי התוצאה פה לא תהיה דטרמיניסטית.
[בגלל זה בדוגמא שהבאתי לעיל, עם ה־i וה־i*2, קבעתי זמני השהייה יחסית ארוכים, אחרת הקביעה שם לא בטוח שהייתה מתקיימת]
נערך לאחרונה ע"י ShoobyD בתאריך 16-11-2015 בשעה 00:59.
|