Threads in Java

gregp

New member
Threads in Java

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

gregp

New member
יותר פרטים

אני מנסה לכתוב אפלחקציה בJAVA שמנהלת מספר תהליכים במקביל: כל תהליך נולד - שולח הודעה, ממתין לתשובה, מקבל תשובה, נכנס להמתנה לפרק זמן מסוים ואז או מעירים אותו לפני הזמן או שהוא מגיע לתום ההמתנה הוא שולח הודעת סיום ובזה מסיים את תפקידו. יש לי מערך של כאלה תהליכים שאני חושב שאולי כדאי למחזר אותם. הבעיה שזה לא רץ כפי שציפיתי
- התחושה היא שלמרות שאני אומר SLEEP הם לא עושים זאת והריצה נמשכת רק לאחר תום המתנה. לכן רציתי לדעת אם משהוא מכיר איזה tutorial או ספר או.....
 

mz70

New member
Threads

Here is a tutorial from the sun site. http://java.sun.com/docs/books/tutorial/essential/threads/index.html I don´t know exactly what you are trying to do but as much as i know you can not know exactly wich tread will run next.
 

philips

New member
הממ...

לגבי ספרות... כל ספר JAVA איכותי מתייחס ל THREADS , מומלץ הפרק של THREADS ב SUN JAVA TUTORIAL הקיים גם בעברית בהוצאת עמיהוד. לגבי ספרות ספציפית לתחום , הרשה לי להמליץ על: Java Thread Programming ,Paul Hyde - Sams וגם (אך פחות ) על Java Threads 2nd. ed. , Scott Oaks, Oreilly... (אם אתה צריך ISBN להזמנה מ AMAZON ,בקש ואשלח) לגבי הבעייה עצמה: כמה בעיות במה שתיארת... 1. לגבי מחזור---- נושא בעייתי מכיון שברגע THREAD סיים להריץ את ה RUN שלו - הוא מת ולא ניתן למחזרו.. אם לכך התכוונת 2. לגבי הנושא של THREAD שמתחיל ומחכה להודעה ורק אחריה יקרה משהו ,כאן עלולה להיווצר בעייה של STARVATION או אף DEADLOCK במקרה שההודעה מבוששת לבוא... .או שאולי לא הבנתי את שאלתך.. 3. לגבי תחושות... הן מאוד בעייתיות כשמדובר ב THREAD - עצתי לך היא להוסיף כמה הדפסות לצורכי DEBUG פלוס מיספור ופלוס זמן ולראות מה בדיוק קורה מכיון שההחלפות והמשחקים בין ה THREAD קורים כ"כ מהר שלא ניתן להבין בדיוק היכן הבעייה.. אם רצונך במחזור , אולי שווה לתכנן מחדש את הטיפול בבעייה ולבנות איזהשהוא אובייקט MSG HANDLER הנשאר קבוע ומחכה לטפל בהודעות.. (הכוונה היא ל Thread שלא מת)
 

voguemaster

New member
לא בדיוק הבנתי את הבעיה, תוכל לפרט?

מה בדיוק קורה בתוכנית ומה ההתנהגות של כל THREAD ? דרך אגב, אני מקווה שיש אצלך synchronization בזמן גישה לכל מיני משאבים בתוכנית... אלי
 

gregp

New member
פרטים נוספים

אני אתן תיאור סכימטי ואז אגיע לשאלה ספציפית. מטרה: תוכנה שתוכל במקביל לבצע מספר "שיחות טלפון" OK? "שיחה": שליחת הודעה למחשב אחר המתנה לאישור במידה ויש אישור לקבוע משך שיחה שרירותי (להמתין את הזמן הזה) כאשר באמצע ניתן לצפות לניתוק יזום בכל מקרה השיחה תגיע לסיום. הרעיון שלי: ישנו CLASS שמכיל את השיחה - יורש מTHREAD ושולח הודעות נכנס להמתנה מתי שצריך וכו´ יש עוד אחד שמכיל מערך של נגיד 10 כאלה ופשוט מפעיל אותם (יש משתנה בוליאני שאומר אם "תפוס" או לא. האמת ציפיתי שזה יעבוד: ברגע שאני אומר SLEEP בTHREAD אחד אחר מתחיל לעבוד אבל בפועל זה לא כך. למישהו יש רעיון מה הסיבה. תודה רבה מראש
 

voguemaster

New member
דוגמת קוד תהיה במקום במקרה כזה..

דרך אגב, אם אתה רוצה לשאול שאלות כלליות בנוגע ל-THREADS, אני מציע את google.groups.com יש להם אחלה קבוצת דיון בנושא... אלי
 
למעלה