איך ממומשים threads בjava?
שלום לכולם - אני מנסה להבין איך מנוהלים הthreads (תהליכונים) בjava ולא מצליח למצוא הסבר ברשת. כעקרון הבנתי בין השאר את הדברים הבאים: 1. ניתן ליצור תהליכונים שפועלים "במקביל". 2. ניתן לשתף משאבים עבור התהליכונים. 3. מישהו חיצוני מנהל את התהליכונים אבל יש להם דרך לתקשר אחד עם השני (notify) אני מנסה להבין איך זה ממומש מול מערכת ההפעלה מתוך (2),(3) אני מסיק שהתהליכונים אינם מבוצעים בעזרת מנגנון הדומה לfork כי אחרת לא הייתי יכול לשתף זכרון. עכשיו מתחיל הקטע שמעניין אותי: א. איפה ממומש המננון הזה - ברמת JVM? ברמת מערכת ההפעלה? לפעמים כך ולפעמים כך? ב. אם הוא מנוהל במערכת ההפעלה האם בuserspace או שאני משלם בcontext switch ? עד כמה זה פוגע ביעילות? אני מניח שעוד שאלות יצוצו ככל שאקרא על זה יותר - אשמח לקבל הכוונה למאמר טוב בנושא.
שלום לכולם - אני מנסה להבין איך מנוהלים הthreads (תהליכונים) בjava ולא מצליח למצוא הסבר ברשת. כעקרון הבנתי בין השאר את הדברים הבאים: 1. ניתן ליצור תהליכונים שפועלים "במקביל". 2. ניתן לשתף משאבים עבור התהליכונים. 3. מישהו חיצוני מנהל את התהליכונים אבל יש להם דרך לתקשר אחד עם השני (notify) אני מנסה להבין איך זה ממומש מול מערכת ההפעלה מתוך (2),(3) אני מסיק שהתהליכונים אינם מבוצעים בעזרת מנגנון הדומה לfork כי אחרת לא הייתי יכול לשתף זכרון. עכשיו מתחיל הקטע שמעניין אותי: א. איפה ממומש המננון הזה - ברמת JVM? ברמת מערכת ההפעלה? לפעמים כך ולפעמים כך? ב. אם הוא מנוהל במערכת ההפעלה האם בuserspace או שאני משלם בcontext switch ? עד כמה זה פוגע ביעילות? אני מניח שעוד שאלות יצוצו ככל שאקרא על זה יותר - אשמח לקבל הכוונה למאמר טוב בנושא.