ð€ Chapter 6: ëìì±
ëìì±ì ë ìŽìì ìœë ì¡°ê°ìŽ ì€íë ë ëìì ì€í ì€ìž ê²ì²ëŒ íëíë ê²ìŽë€. ê·žëŠ¬ê³ ë³ë ¬ì±ìŽë ì€ì ë¡ ëìì ì€íëë ê²ìŽë€.
ëìì±ì ì»ìŒë €ë©Ž ì€í ì€ì ìœëì ë€ë¥ž ë¶ë¶ìŒë¡ ì€íì ì íí ì ìë í겜ìì ìœë륌 구ëíŽìŒ íë€. 볎íµì íìŽë²(fiber)ë ì€ë ë, íë¡ìžì€ ë±ì ì¬ì©íì¬ ëìì±ì 구ííë€.
ë³ë ¬ì±ì ì»ìŒë €ë©Ž ë ê°ì§ ìŒì ëìì í ì ìë íëìšìŽê° íìíë€.
ð¥ 몚ë ìŒì ëìì±ìŽ ìë€â
ìì€í ì ê·ëªšê° ìŽë ì ë륌 ëìŽê°ë©Ž ëìì±ì ê³ ë €íì§ ìê³ ìœë륌 ìì±íêž°ë ê±°ì ë¶ê°ë¥íë€. ëìì±ì ê²ìŒë¡ ëë¬ë ëë ìì§ë§ ëŒìŽëžë¬ëŠ¬ ìì 묻í ìë 겜ì°ë ìë€. ì¬ë¬ë¶ì ì í늬ìŒìŽì ìŽ ì€ì ìžìì ë€ë£šêž° ìíë€ë©Ž ëìì±ì íìë€. ìžìì ë¹ëêž°ì ìŽêž° ë묞ìŽë€. ë§ìœ ìì°šì ìŒë¡ íë륌 ëëž ë€ìì ë€ì ìŒì íë ììŒë¡ ìííë€ë©Ž, ìì€í ì ê±°ë¶ìŽì²ëŒ ëëŠ¬ê² ëê»Žì§ ê²ìŽê³ íë¡ê·žëšì 구ëíë íëìšìŽì ì±ë¥ë ìµëë¡ íì©íì§ ëª»í ê²ìŽë€.
ð Topic 33. ìê°ì ê²°í© ê¹šížëŠ¬êž°â
ìíížìšìŽ ìí€í ì²ìì ìê°ìŽëŒë ìž¡ë©Žì ì죌 묎ìëë€. ì°ëŠ¬ê° ì 겜ì°ë ì ìŒí ìê°ì ìŒì , ë°ë¡ ì¶ìê¹ì§ ëšì ìê°ë¿ìŽë€. íì§ë§ ì¬êž°ì ìŽìŒêž°í ê²ì ìŽë° ì¢ ë¥ì ìê°ìŽ ìëë€. ìê°ìë ì°ëŠ¬ê° ì 겜 ìšìŒ í ìž¡ë©ŽìŽ ë ê°ì§ ìëë°, ëìì±(ëìì ìŒìŽëë ìŒë€)곌 ìì(ìê°ì íëŠ ììì ìŒë€ì ìëì ìž ìì¹)ë€.
ì°ëŠ¬ë ë³Žíµ íë¡ê·žëë°í ë ë ìž¡ë©Ž 몚ë í¹ë³í ì 겚 ì°ì§ ìëë€. ë©ìë Aë ìžì ë ë©ìë Bë³Žë€ ëšŒì ížì¶íŽìŒ íë€. ë³Žê³ ìë í ë²ì ì€ì§ íëë§ ìì±í ì ìë€. ë²íŒ íŽëŠì ì²ëŠ¬íë €ë©Ž 뚌ì íë©ŽìŽ ê°±ì ëìŽìŒ íë€.
ìŽë¬í ì ê·Œ ë°©ë²ì ê·žë€ì§ ì ì°íì§ ìê³ íì€ê³Œë ëëšìŽì ž ìë€.
ì°ëŠ¬ë ëìì±ì í볎íŽìŒ íë€. ìê°ìŽë ììì ìì¡Žíë ìê°ì ê²°í©ì ëë ë°©ë²ì ìê°íŽ ëŽìŒ íë€. ê·žë ê² íšìŒë¡ìš ì ì°ì±ë ì»ì ì ìê³ , ìì
íëŠ ë¶ì곌 ìí€í
ì², ì€ê³, ë°°í¬ì ê°ì ê°ë°ì ì¬ë¬ ìž¡ë©Žìì ìê°ê³Œ êŽë šë ìì¡Žì±ë íšê» ì€ìŒ ì ìë€. 결곌ì ìŒë¡ ë¶ìíêž° ë ìœê³ ìëµìëë ë ë¹ ë¥Žë©° ë ìì ì ìž ìì€í
ì ë§ë€ ì ìì ê²ìŽë€.
ð¥ ëìì± ì°Ÿêž°â
ì°ëŠ¬ë ëìì ìŒìŽëë ëë ê² ëê³ , ë°ëì ììëë¡ ìŒìŽëìŒ íë 걎 ìŽë€ ê²ìžì§ ì°ŸìëŽêžž ìíë€. "íë ë€ìŽìŽê·žëš" ê°ì íêž°ë²ì ì¬ì©íŽì ìì íëŠì ê·žë¡íë ê²ìŽ í ë°©ë²ìŽë€.
TIP 56. ìì íëŠ ë¶ììŒë¡ ëìì±ì ê°ì íëŒ.
íë ë€ìŽìŽê·žëšì ì¬ì©íë©Ž ëìì ìíí ìë ìëë°ë ìì§ ëìì íê³ ìì§ ìì íëë€ì ì°ŸìëŽì ë³ë ¬ì±ì ê·¹ëíí ì ìë€.
ð¥ ëì ìì ì êž°íâ
íë ë€ìŽìŽê·žëšì ëìì ìì
í ì ìë ë¶ë¶ë€ì ë³Žì¬ ì€ë€. íì§ë§ ì§ì§ë¡ ëìì íë ê²ìŽ ì¢ìì§ë ìë €ì£Œì§ ìëë€. ê·žëì ì€ê³ê° íìíë€.
ì°ëŠ¬ë ìê°ìŽ 걞늬ì§ë§, ì°ëŠ¬ ìœëê° ìë ê³³ìì ìê°ìŽ 걞늬ë íëì ì°Ÿê³ ì¶ë€. ë°ìŽí°ë² ìŽì€ë¥Œ ì¡°íí ëë ìžë¶ ìë¹ì€ì ì ê·Œí ë, ì¬ì©ì ì
ë ¥ì êž°ë€ëŠŽ ë ê°ìŽ ì°ëŠ¬ íë¡ê·žëšìŽ ë€ë¥ž ìì
ìŽ ëëꞰ륌 êž°ë€ë €ìŒ íë ìí© ë§ìŽë€. ìŽë° ìê°ìŽ ë°ë¡ CPUê° ìê°ëœë§ 빚멎ì êž°ë€ëŠ¬ë ëì ì¢ ë ìì°ì ìž ìŒì í ì ìë êž°íë€.
ð¥ ë³ë ¬ ìì ì êž°íâ
컎íší° í ëì ìë ìëë©Ž ì°ê²°ë ì¬ë¬ ëì ìë ì°ëŠ¬ìê² ì¬ë¬ ê°ì íë¡ìžìê° ìë€ë©Ž, ê·žëŠ¬ê³ ìì
ì íë¡ìžìë€ìê² ëëìŽ ì€ ì ìë€ë©Ž ì 첎 ìì ìê°ì ëšì¶í ì ìë€.
ìŽë° ììŒë¡ ëëêž°ì ê°ì¥ ìŽìì ìž ê²ì ë¹êµì ë
늜ì ìž ë¶ë¶ ìì
ë€ìŽë€. ë€ë¥ž ë¶ë¶ ìì
ì êž°ë€ëŠŽ íì ììŽ ì§íí ì ììŒë©Ž ì¢ë€. ìŒë°ì ìž ííë 컀ë€ë ìì
ì ë
늜ì ìž ë¶ë¶ë€ë¡ 쪌ê°ì ë³ë ¬ë¡ ê°ê° ì²ëŠ¬í ë€ì, 결곌륌 í©ì¹ë ê²ìŽë€.
ð¥ êž°í륌 ì°Ÿì ëŽë ê²ì ìœë€â
ì¬ë¬ë¶ì ì í늬ìŒìŽì ìŒë¡ ëìê°ì. ëì ìì ìŽë ë³ë ¬ ìì ì íŽì ìŽëì 볌 ì ìë ë¶ë¶ì ì°Ÿìë€. ìŽì ìŽë €ìŽ ë¶ë¶ìŽ ëšìë€. ìŽë»ê² ìì íê² êµ¬íí ì ììê¹?
ð Topic 34. ê³µì ìíë í늰 ìíâ
ì¬ë¬ë¶ìŽ ê°ì¥ ì¢ìíë ë ì€í ëì 방묞íë€. ë©ìž ì늬륌 몚ë ëš¹ì í ì¢
ì
ììê² í¹ì ì ííìŽê° ëšì ìëì§ ë¬»ëë€. ì¢
ì
ìì ìŽêº ëìŽë¥Œ ëì볎ëë ì§ìì¥ì í ì¡°ê°ìŽ ëšì ìë ê²ì íìžíê³ ë ê·žë ë€ê³ ëëµíë€. ì¬ë¬ë¶ì 죌묞ì ë§ì¹ê³ ìëì íìšì ëŽì°ë€.
ííž ë ì€í ëì ë°ë쪜ììë ë€ë¥ž ê³ ê°ìŽ ì¢
ì
ììê² ê°ì ì§ë¬žì íê³ ìë€. ìŽ ì¢
ì
ìë ì§ìŽì¥ì ì³ë€ë³Žê³ ë í ì¡°ê°ìŽ ìë ê²ì íìžíê³ ì£Œë¬žì ë°ëë€. ë ê³ ê° ì€ í ëª
ì ì€ë§íê² ë ê²ìŽë€.
Tip 57. ê³µì ìíë í늰 ìíë€.
묞ì ë ìíê° ê³µì ë ê²ìŽë€. ë ì€í ëì ì¢ ì ìë€ì ìë¡ë¥Œ ê³ ë €íì§ ìê³ ì§ìŽì¥ë§ íìžíë€.
ð¥ ë¹-ììì ê°±ì â
ì¢ ì ì1ìŽ íì¬ íìŽ ì¡°ê° ì륌 ì¡°ííê³ , 1ì ì»ëë€. ê·žë¬ê³ ë ê³ ê°ìê² íìŽë¥Œ ìœìíë€. íì§ë§ ìŽ ìì ì ì¢ ì ì2ë ìì ì ììíë€. ìì íìŽ ì¡°ê° ì륌 ì¡°ííì¬ 1ì ì»ê³ , ê³ ê°ìê² ëê°ì ìœìì íë€. ë ì€ íëê° ë§ì§ë§ ëšì íìŽ ì¡°ê°ì íëíê³ , ë€ë¥ž ì¢ ì ìì ìŒì¢ ì ììž ìíì ë¹ ì§ë€.
ì¬êž°ì 묞ì ë ë íë¡ìžì€ê° ê°ì ë©ëªšëŠ¬ ììì ì°êž°ê° ê°ë¥íë€ë ì ìŽ ìëë€. 묞ì ë ìŽë íë¡ìžì€ë ìì ìŽ ë³Žë ë©ëªšëŠ¬ê° ìŒêŽëìŽ ììì 볎ì¥í ì ìë€ë ì ìŽë€. ìŽê²ì 몚ë íìŽ ì¡°ê°ì ê°ì žì€ê³ ê°±ì íë ëììŽ ììì ìŽì§ ìêž° ë묞ìŽë€. ì€ì ê°ìŽ ê·žì¬ìŽì ë°ë ì ìë€. ê·žë ë€ë©Ž ìŽë»ê² ììì ìŒë¡ ë°ê¿ ì ììê¹?
ìžë§í¬ìŽ ë° ë€ë¥ž ìíž ë°°ì ë°©ë²â
ìžë§í¬ìŽë ëšìí í ë²ì í ì¬ëë§ìŽ ê°ì§ ì ìë 묎ìžê°ë€. ì¬ë¬ë¶ì ìžë§í¬ìŽë¥Œ ë§ë€ìŽì ë€ë¥ž 늬ìì€ì ì¬ì©ì ì ìŽíë ë° ìž ì ìë€.
ë ì€í ëììë 묌늬ì ìž ìžë§í¬ìŽë¡ íìŽ ë¬žì 륌 íŽê²°íêž°ë¡ íë€. ì§ìŽì¥ ìì ëê¹šë¹ ìžíì íë ì¬ë € ëë€. 몚ë ì¢ ì ìì íìŽ ì£Œë¬žì ë°êž° ì ì ëê¹šë¹ ìžíì ìì ë£ìŽìŒ íë€. 죌묞ì ë°ê³ íìŽë¥Œ ì ìì ëŽì ê³ ê°ìê² ëž íìë ëê¹šë¹ ìžíì 볎묌 íìŽë¥Œ ì§í€ë ìë ìì¹ì ëëë € ëëë€. ë€ì 죌묞ì ë°ì ì ìëë¡ ë§ìŽë€.
case_semaphore.lock()
if display_case.pie_count > 0
promise_pie_to_customer()
display_case.take_pie()
give_pie_to_customer()
end
case_semaphore.unlock()
ë ì¢ ì ììŽ ëìì ìœë륌 ì€íì쌰ë€ê³ ê°ì íŽ ë³Žì. ë ë€ ìžë§í¬ìŽë¥Œ ì»ìŒë €ê³ (lock) ìëíì§ë§ í ëª ë§ ì±ê³µíë€. ìžë§í¬ìŽë¥Œ í볎í 쪜ì íìì²ëŒ ê³ì ì§ííë€. ìžë§í¬ìŽë¥Œ ì»ì§ 못í 쪜ì ìžë§í¬ìŽë¥Œ ì»ì ì ìì ëê¹ì§ ë©ì¶° ìëë€. ìŠ, êž°ë€ëŠ°ë€. 첫 ë²ì§ž ì¢ ì ììŽ ì£Œë¬žì ìë£íê³ ìžë§í¬ìŽì ì êžì íŽì íë©Ž ë€ë¥ž ì¢ ì ììŽ ì€íì ì¬ê°íë€.
ìŽ ì ê·Œ ë°©ììë ëª ê°ì§ 묞ì ê° ìë€. ê°ì¥ í° ë¬žì ë ì§ìì¥ì ì ê·Œíë 몚ë ì¬ëìŽ ë¹ ì§ììŽ ìžë§í¬ìŽë¥Œ ì¬ì©íŽìŒë§ ì ëë¡ ëìíë€ë ê²ìŽë€. ë§ìœ ëêµ°ê°ê° ê¹ë¹¡íë€ë©Ž, ë€ì ë§íŽì ìŽë€ ê°ë°ìê° ìœìì ì§í€ì§ ìë ìœë륌 ìŽë€ë©Ž ë€ì íŒëì ë¹ ì§ë€.
늬ìì€ë¥Œ ížëìì ìŒë¡ êŽëŠ¬íëŒâ
íì¬ì ì€ê³ê° 믞í¡í ê²ì ì§ìŽì¥ ì¬ì©ì 볎íží ì± ìì ì§ìŽì¥ì ì¬ì©íë ì¬ëìê² ì ê°íêž° ë묞ìŽë€. ì ìŽë¥Œ ì€ììŒë¡ ì§ì€ìí€ì. ê·žë¬ë €ë©Ž API륌 ë°ê¿ì ì¢ ì ììŽ íëì ížì¶ë¡ íìŽ ì¡°ê° ì륌 íìžíšê³Œ ëìì íìŽ ì¡°ê°ì ê°ì žê°ëë¡ ë§ë€ìŽìŒ íë€.
def get_pie_if_available()
@case_semaphore.protect() {
if @slices.size > 0
update_sales_data(:pie)
return @slices.shift
else
return false
end
}
end
ð¥ ížëìì ìŽ ìë ê°±ì â
ê³µì ë©ëªšëŠ¬ë ëìì± ë¬žì ì ììžìŒë¡ ë§ìŽ ì§ëª©ë°ëë€. íì§ë§ ì¬ì€ ìì ê°ë¥í 늬ìì€ë¥Œ ê³µì íë ì í늬ìŒìŽì ìœë ìŽëììë ëìì± ë¬žì ê° ë°ìí ì ìë€. ì¬ë¬ë¶ ìœëì ìžì€íŽì€ ë ìŽììŽ íìŒ, ë°ìŽí°ë² ìŽì€, ìžë¶ ìë¹ì€ ë± ìŽë€ 늬ìì€ì ëìì ì ê·Œí ì ìë€ë©Ž ì¬ë¬ë¶ì ì ì¬ì ìž ë¬žì 륌 ìê³ ìë ê²ìŽë€.
Tip 58. ë¶ê·ì¹í ì€íšë ëìì± ë¬žì ìž ê²œì°ê° ë§ë€.
ð¥ ê·ž ë°ì ë ì ì ìž ì ê·Œâ
ëë¶ë¶ì ìžìŽìë ê³µì 늬ìì€ì ë ì ì ìŒë¡ ì ê·Œíë ê²ì ëì죌ë ëŒìŽëžë¬ëŠ¬ê° ìë€. ìíž ë°°ì 륌 ì믞íë 뮀í ì€ëŒê³ ë¶ë¥Žêž°ë íê³ , 몚ëí°ë ìžë§í¬ìŽëŒê³ ë¶ë¥Žêž°ë íë€. 몚ë ëŒìŽëžë¬ëŠ¬ë¡ ì ê³µëë€.
ìžìŽ ì첎ì ëìì± ì§ììŽ ë€ìŽ ìë ìžìŽë ìë€. ì륌 ë€ìŽ ë¬ì€ížë ë°ìŽí°ì ìì ê¶ìŽëŒë ê°ë ì ê°ì íë€. ë³ê²œ ê°ë¥í ë°ìŽí° ì¡°ê°ì ìŽë í ìì ì ëš íëì ë³ìë ë§€ê° ë³ìë§ ì°žì¡°ë¥Œ ê°ì§ ì ìë€.
íšìí ìžìŽë€ì 몚ë ë°ìŽí°ë¥Œ ë³ê²œ ë¶ê°ë¥íê² ë§ëë 겜í¥ìŽ ììŒë¯ë¡ ëìì± ë¬žì 륌 ëšìíê² ë§ë ë€ê³ 죌ì¥í ìë ìê² ë€. íì§ë§ íšìí ìžìŽë ìžì ê°ë 몚ë ê²ìŽ ë³ê²œ ê°ë¥í ì§ì§ ìžìì ë°ì ë€ì¬ìŒ íë¯ë¡ ëê°ì 묞ì 륌 겪ë ìê°ìŽ ì¬ ê²ìŽë€.
ð¥ ìì¬ ì ìë, ìíì.....â
í¹ì ìŽë² í목ìì ì»ìŽ ê°ë ê²ìŽ ìë€ë©Ž ìŽê²ë§ì êž°ìµíꞰ륌 ë°ëë€. 늬ìì€ë¥Œ ê³µì íë í겜ìì ëìì±ì ìŽë µë€. ìŽë¬žì 륌 ì§ì íë €ê³ íë€ë©Ž ê³ ëì ì°ììŒ ê²ìŽë€.
ê·žëì ë€ì ì€ëë ëëŽì ì믞íŽë³Žêž°ë¥Œ ì¶ì²íë ê²ìŽë€.
ìì¬ ì ìë, ìŽë ê² íë©Ž ìíì.
ê·žë¬ë©Ž ê·žë ê² íì§ ë§ìžì.