שאלה לתוכניתני JAVA

DadleFish

New member
לא הבנתי את השאלה.

על איזה תנאי אתה מדבר? wait עוצרת את ה-thread הנוכחי לזמן מסוים (או עד שהתקבל notify מ-thread אחר). התנאי שמסביב ל-wait תלוי באלגוריתם הכללי שלך.
 
השאלה שלך לא ברורה...../images/Emo26.gif

איזה if ואיזה while??? אין קשר בין wait לבין if או while. אם אתה רוצה שנבין על מה אתה מדבר - צרף את קטע הקוד. אנחנו מתעסקים בתכנות, לא בטלפתיה...
 

Pembelton

New member
צודקים כל מי שאמרו לך להוסיף דוגמא

אני משער שבקוד שלך יש while שבתוכו wait(). אתה רוצה להיות בטוח שאחרי שיצאת מה- WAIT)( התנאי אכן מתקיים ולכן יש WHILE. יש מקרים מסוימים שבהם ברור לך שאם ה- WAIT הסתיים אז התנאי מתקיים, אבל חבל לך להסתכן בבאג במידה ותטעה בזיהוי המקרים האלה. מסקנה: שים WHILE ותזכה לאריכות ימים.
 

desertboy

New member
מכיון

שהאיפלמטציה של ה wait בג'אווה היא כזאת שברגע שנעשה notifyall מתעוררים כל התרדים שמחכים (כלומר לא מובטח מי יכנס) וכדי שלא יווצר שיהיו שני תרדים ב cs צריך לבצע את ה wait בתוך while .
 

desertboy

New member
תיקון קטן

הכונה לא לאימפלמנטציה של wait אלה של המנגנון כולו , טעות ניסוח קטנה.
 
אבל זה הכל תלוי במקרה../images/Emo70.gif

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

Pembelton

New member
מה זה משנה?

יש מקרה שבו WHILE לא מתאים ו- IF כן ? לא נראה לי.
 

desertboy

New member
עדיין אני חושב

שלהסביר את המנגנון תורם יותר מאשר לענות במפורש על מקרה ספציפי מסוים, ואגב גם אם אתה משתמש ב notify ומעיר רק אובייקט אחד עדיין אתה צריך להשתמש ב while , לכן מס' המצב בג'אווה שבוא אתה יכול להשתמש ב if הוא אפסי.
 
למעלה