אחר הצהריים טובים.
יש שאלה לראיון כזה.
כמה דרכים ליצור שרשורים אתה מכיר? המספר 2 מופיע בתשובות: או ליצור
Thread
, להעביר אותו
Runnable
או ליצור אובייקט של מחלקה צאצאית
Thread
שבה
run()
. אבל תהיתי: זה שניים? אם אתה משתמש
concurrent
, למשל,
Executors.newFixedThreadPool(5)
אז כאשר אובייקטי שרשור נוצרים, מיד כאשר שיטה זו מבוצעת, או מאוחר יותר, כאשר משימות מופיעות לביצוע (אחרי הכל, ייתכן שהן לא יופיעו). כל שיטות המפעל הללו מחזירות איזושהי קונפיגורציה
ThreadPoolExecutor
שיש לה אחד מפרמטרי הקונפיגורציה.על
corePoolSize
שדה זה כתוב:
corePoolSize
– מספר החוטים שיש לשמור בבריכה,
גם אם הם בטלים , אלא אם כן
allowCoreThreadTimeOut
מוגדר מצד שני, אם המשימות לא הגיעו, אז יצרנו 5 עובדים בטלים, אולי הם מתחילים להיווצר כשהמשימות מתחילות להגיע?
באופן כללי, עדיין ניתן לזכור 2 או 3 אפשרויות כתשובה לשאלה?
GO TO FULL VERSION