JavaTM 2 Platform
Standard Ed. 5.0

java.nio.channels
Ŭ·¡½º Selector

java.lang.Object 
  »óÀ§¸¦ È®Àå java.nio.channels.Selector
¾Ë·ÁÁø Á÷°è ¼­ºê Ŭ·¡½º:
AbstractSelector

public abstract class Selector
extends Object

SelectableChannel °´Ã¼ÀÇ ¸ÖƼÇ÷º¼­ÀÔ´Ï´Ù.

¼¿·ºÅ͸¦ ÀÛ¼ºÇÏ·Á¸é, ÀÌ Å¬·¡½ºÀÇ open ¸Þ¼­µå¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ½Ã½ºÅÛÀÇ µðÆúÆ® ¼¿·ºÅÍ ÇÁ·Î¹ÙÀÌ´õ¸¦ »ç¿ëÇØ »õ·Î¿î ¼¿·ºÅ͸¦ ÀÛ¼ºÇÕ´Ï´Ù. ¶Ç, Ä¿½ºÅÒ ¼¿·ºÅÍ ÇÁ·Î¹ÙÀÌ´õÀÇ openSelector ¸Þ¼­µå¸¦ È£ÃâÇصµ, ¼¿·ºÅ͸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼¿·ºÅÍ´Â close ¸Þ¼­µå·Î Ŭ·Î¿ìÁî µÉ ¶§±îÁö ¿ÀÇ »óŸ¦ À¯ÁöÇÕ´Ï´Ù.

¼¿·ºÅÍ¿¡ µî·ÏµÇ¾î ÀÖ´Â ¼±Åà °¡´É ä³ÎÀº, SelectionKey °´Ã¼¿¡ ÀÇÇØ Ç¥½ÃµË´Ï´Ù. ¼¿·ºÅÍ°¡ °ü¸®ÇÏ´Â ¼±Åà Ű¼¼Æ®¿¡´Â ´ÙÀ½ÀÇ 3 Á¾·ù°¡ ÀÖ½À´Ï´Ù.

»õ·Ó°Ô ÀÛ¼ºµÈ ¼¿·ºÅÍ¿¡¼­´Â ÀÌ 3 °³¼¼Æ®´Â ºñ¾îÀÖ½À´Ï´Ù.

¼¿·ºÅÍÀÇ Å° ¼¼Æ®¿¡´Â ä³ÎÀÇ register ¸Þ¼­µå¸¦ »ç¿ëÇØ Ã¤³ÎÀ» µî·ÏÇÑ ¿µÇâ¿¡ÀÇÇØ Å°°¡ Ãß°¡µË´Ï´Ù. »èÁ¦µÈ Å°´Â ¼±Åýÿ¡ Å° ¼¼Æ®·ÎºÎÅÍ »èÁ¦µË´Ï´Ù. Å° ¼¼Æ® ÀÚü¸¦ Á÷Á¢ º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù.

¼¿·ºÅÍ°¡ »èÁ¦µÈ Å° ¼¼Æ®¿¡´Â ä³ÎÀÇ Å¬·Î¿ìÁ cancel ¸Þ¼­µåÀÇ È£Ãâ¿¡ ÀÇÇØ »èÁ¦µÈ Å°°¡ Ãß°¡µË´Ï´Ù. Å°¸¦ Ãë¼ÒÇϸé, ´ÙÀ½¹øÀÇ ¼±Åýÿ¡ ´ëÀÀÇϴ ä³ÎÀÇ µî·ÏÀÌ ÇØÁ¦µÇ¾î ÀÌ ½ÃÁ¡¿¡¼­ ±× Å°´Â ¼¿·ºÅÍÀÇ ¸ðµç Å° ¼¼Æ®·ÎºÎÅÍ »èÁ¦µË´Ï´Ù.

¼±Åà Á¶ÀÛÀ» ½ÇÇàÇϸé, ¼±ÅÃµÈ Å° ¼¼Æ®¿¡ Å°°¡ Ãß°¡µË´Ï´Ù. ¼±ÅÃµÈ Å° ¼¼Æ®·ÎºÎÅÍ Á÷Á¢ Å°¸¦ »èÁ¦ÇÏ´Â °æ¿ì´Â ¼±ÅÃµÈ Å° ¼¼Æ®ÀÇ remove ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö, ¼±ÅÃµÈ Å° ¼¼Æ®·ÎºÎÅÍ Ãëµæ °¡´ÉÇÑ ¹Ýº¹ÀÚ remove ¸Þ¼­µå¸¦ È£ÃâÇÕ´Ï´Ù. ±× ÀÌ¿ÜÀÇ ¹æ¹ý¿¡¼­´Â ¼±ÅÃµÈ Å° ¼¼Æ®·ÎºÎÅÍ Å°¸¦ »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù. ¶Ç, ¼±Åà Á¶ÀÛÀÇ °á°ú·Î¼­ Å°°¡ »èÁ¦µÉ °ÍÀº ¾ø½À´Ï´Ù. ¼±ÅÃµÈ Å° ¼¼Æ®¿¡ Á÷Á¢ Å°¸¦ Ãß°¡ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

¼±ÅÃ

¼±Åà Á¶ÀÛ¸¶´Ù, ¼¿·ºÅÍÀÇ ¼±ÅÃµÈ Å° ¼¼Æ®¿¡ ´ëÇؼ­ Å°ÀÇ Ãß°¡ ¹× »èÁ¦°¡ ½ÇÇàµÇ´Â °Í°ú µ¿½Ã¿¡ Å° ¼¼Æ® ¹× »èÁ¦µÈ Å° ¼¼Æ®·ÎºÎÅÍ Å°°¡ »èÁ¦µË´Ï´Ù. ¼±ÅÃÀº select(), select(long), selectNow() ¸î°³ÀÇ ¸Þ¼­µå¿¡ÀÇÇØ ´ÙÀ½ÀÇ 3 ´Ü°èÀÇ ¼ø¼­¸¦ °ÅÃÄ ÇàÇØÁý´Ï´Ù.

  1. »èÁ¦µÈ Å° ¼¼Æ®¿¡ Æ÷ÇԵǴ ¸ðµç Å°°¡ ¼Ò¼ÓÇÏ´Â °¢ Å° ¼¼Æ®·ÎºÎÅÍ »èÁ¦µÇ´Â °Í°ú µ¿½Ã¿¡ ±×°Íµé¿¡ ´ëÀÀÇϴ ä³ÎÀÇ µî·Ïµµ ¸ðµÎ ÇØÁ¦µË´Ï´Ù. ÀÌ ¼ø¼­°¡ ¿Ï·áÇϸé, »èÁ¦µÈ Å° ¼¼Æ®´Â ºñ¿ó´Ï´Ù.

  2. Å°ÀÇ ´ë»ó ¼¼Æ®¿¡ Æ÷ÇԵǴ Á¶ÀÛÀÇ Àû¾îµµ 1°³À» ½ÇÇàÇÒ ¼ö ÀÖ´Â »óÅ°¡ µÈ ä³ÎÀÌ ¼±Åà °³½ÃÀÇ ½ÃÁ¡¿¡¼­ Á¸ÀçÇÒÁö ¾î¶³ÁöÀÇ ÃֽŠÁ¤º¸¸¦ ¾ò±â À§Çؼ­ ±âº»ÀÌ µÇ´Â OS¿¡ Á¶È¸ÇÕ´Ï´Ù. ÇØ´çÇϴ ä³Î¿¡ ´ëÇؼ­´Â ´ÙÀ½ÀÇ ¸î°³ÀÇ ¾×¼ÇÀÌ ½ÇÇàµË´Ï´Ù.

    1. ¼±ÅÃµÈ Å° ¼¼Æ®³»¿¡ ±× ä³ÎÀÇ Å°°¡ Á¸ÀçÇÏÁö ¾Ê¾Ò´ø °æ¿ì, ¼±ÅÃµÈ Å° ¼¼Æ®³»¿¡ ±× Å°°¡ Ãß°¡µÇ´Â °Í°ú µ¿½Ã¿¡ ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®°¡ º¯°æµÇ¾î ±× ä³Î·Î Áغñ°¡ °®Ãß¾îÁ³´Ù°í º¸°íµÈ Á¶ÀÛÀÌ µî·ÏµÈ´Ù. ±× ÀÌÀü¿¡ ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®¿¡ ±â·ÏµÇ°í ÀÖ´ø Á¤º¸´Â ÆıâµÈ´Ù

    2. ±×·¸Áö ¾ÊÀº °æ¿ì´Â ±× ä³ÎÀÇ Å°´Â ÀÌ¹Ì ¼±ÅÃµÈ Å° ¼¼Æ®³»¿¡ Á¸ÀçÇÏ°í Àֱ⠶§¹®¿¡ ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®°¡ º¯°æµÇ¾î ±× ä³Î·Î Áغñ°¡ °®Ãß¾îÁ³´Ù°í º¸°íµÈ Á¶ÀÛÀÌ ¸ðµÎ µî·ÏµÈ´Ù. ±× ÀÌÀü¿¡ ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®¿¡ ±â·ÏµÇ°í ÀÖ´ø Á¤º¸´Â º¸Á¸µÈ´Ù. Áï, ±âº»ÀÌ µÇ´Â ½Ã½ºÅÛÀ¸·ÎºÎÅÍ ¸®ÅÏµÈ ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®´Â ÇöÀçÀÇ ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®¿¡ ¡¸bitwise-disjoin (ºñÆ® ´ÜÀ§¿¡¼­ÀÇ ºÐ¸®)¡¹µÈ´Ù

  3. ÀÌ ¼ø¼­ÀÇ °³½Ã½Ã¿¡ Å° ¼¼Æ®³»ÀÇ ¸ðµç Å°ÀÇ ´ë»ó ¼¼Æ®°¡ ºñ¿ì°í ÀÖ´Â °æ¿ì, ¼±ÅÃµÈ Å° ¼¼Æ®µµ Å°ÀÇ ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®µµ °»½ÅµÇÁö ¾Ê½À´Ï´Ù.
  4. ¼ø¼­ 2 ½ÇÇàÁß¿¡ »èÁ¦µÈ Å° ¼¼Æ®¿¡ Ãß°¡µÈ Å°°¡ Á¸ÀçÇÏ´Â °æ¿ì, ±×·¯ÇÑ Å°´Â ¼ø¼­ 1¿¡ µû¶ó 󸮵˴ϴÙ.

3°³ÀÇ ¼±Åà ¸Þ¼­µåÀÇ º»ÁúÀûÀÎ Â÷ÀÌ´Â 1°³ ÀÌ»óÀÇ Ã¤³ÎÀÇ Áغñ°¡ °®Ãß¾îÁú ¶§±îÁö ¼±Åà Á¶ÀÛÀÌ ºí·Ï µÉÁö ¾î¶³Áö¶ó°í ºí·Ï µÇ´Â °æ¿ì¿¡ ¾î´À Á¤µµÀÇ ±â°£ ºí·Ï µÇ´ÂÁö, 2 Á¡ »ÓÀÔ´Ï´Ù.

º´Ç༺

¼¿·ºÅÍ ÀÚü´Â º¹¼öÀÇ º´Çà thread·Î ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ÀÌ°ÍÀº Å° ¼¼Æ®¿¡´Â µé¾î¸ÂÁö ¾Ê½À´Ï´Ù.

¼±Åà Á¶ÀÛÀº ¼¿·ºÅÍ ÀÚü, Å° ¼¼Æ®, ¼±ÅÃµÈ Å° ¼¼Æ®¸¦ ÀÌ Â÷·Ê·Î µ¿±âÈ­ÇÕ´Ï´Ù. »ó±âÀÇ ¼ø¼­ 1 ¹× 3 ½ÇÇà½Ã´Â »èÁ¦µÈ Å° ¼¼Æ®¸¦ µ¿±âÈ­ÇÕ´Ï´Ù.

¼±Åà Á¶ÀÛÀÇ ½ÇÇàÁß¿¡ ¼¿·ºÅÍÀÇ Å°ÀÇ ´ë»ó ¼¼Æ®·Î º¯°æÀ» ´õÇصµ, º¯°æÀÌ Àû¿ëµÇ´Â °ÍÀº ´ÙÀ½ÀÇ ¼±Åà Á¶ÀÛÀ¸·ÎºÎÅÍ¿©, ÇöÀç ½ÇÇàÁßÀÇ Á¶ÀÛ¿¡ ¿µÇâÀº ¾ø½À´Ï´Ù.

Å°ÀÇ Ãë¼Ò³ª ä³ÎÀÇ Å¬·Î¿ìÁî´Â ¾ðÁ¦¶óµµ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼­, ¾î´À Å°°¡ 1°³ ÀÌ»óÀÇ ¼¿·ºÅÍÀÇ Å° ¼¼Æ®³»¿¡ Á¸ÀçÇÏ°í À־, ±× Å°°¡ À¯È¿ÇØ, ä³ÎÀÌ ¿ÀÇÂÇÏ°í ÀÖ´Ù°í´Â ÇÒ ¼ö ¾ø½À´Ï´Ù. ´Ù¸¥ thread°¡ Å°ÀÇ Ãë¼Ò³ª ä³ÎÀÇ Å¬·Î¿ìÁ ½ÇÇàÇÒ °¡´É¼ºÀÌ ÀÖ´Â °æ¿ì´Â ¾îÇø®ÄÉÀÌ¼Ç ÄÚµåÀÇ µ¿±âÈ­¸¦ ½ÅÁßÇÏ°Ô ½Ç½ÃÇØ, ÇÊ¿ä¿¡ µû¶ó¼­ ±× »óŸ¦ üũÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

select(), select(long) ¸î°³ÀÇ ¸Þ¼­µå¿¡ ÀÇÇØ ºí·Ï µÈ thread¿¡ ´ëÇؼ­ ´Ù¸¥ thread·ÎºÎÅÍ ÀÎÅÍ·´Æ®¸¦ °ÉÄ¡·Á¸é, ´ÙÀ½ÀÇ 3°³ÀÇ ¹æ¹ýÀÇ ¾î´ÀÂÊÀ̵çÀ» »ç¿ëÇÕ´Ï´Ù.

close ¸Þ¼­µå´Â ¼¿·ºÅÍ¿Í 3°³ÀÇ Å° ¼¼Æ® ¸ðµç °ÍÀ» ¼±Åà Á¶ÀÛ½Ã¿Í °°Àº Â÷·Ê·Î µ¿±âÈ­ÇÕ´Ï´Ù.

º¸Åë, ¼¿·ºÅÍÀÇ Å° ¼¼Æ® ¹× ¼±ÅÃµÈ Å° ¼¼Æ®´Â º¹¼öÀÇ º´Çà thread·Î ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ¸î°³ÀÇ ¼¼Æ®¸¦ Á÷Á¢ º¯°æÇÏ´Â thread°¡ ÀÖ´Â °æ¿ì, ±× ¼¼Æ®¸¦ µ¿±âÈ­ÇÏ´Â °Í¿¡ ÀÇÇØ ¾×¼¼½º Á¦¾î¸¦ ½Ç½ÃÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¼¼Æ®ÀÇ iterator ¸Þ¼­µå¿¡ ÀÇÇØ ¸®ÅÏµÈ ¹Ýº¹ÀÚ´Â fail-fast ÀÔ´Ï´Ù. ¹Ýº¹ÀÚÀÇ ÀÛ¼º ÈÄ, ¹Ýº¹ÀÚ °íÀ¯ÀÇ remove ¸Þ¼­µå È£ÃâÇØ ÀÌ¿Ü ¹æ¹ýÀ¸·Î ¼¼Æ®°¡ º¯°æµÇ¾úÀ» °æ¿ì, ConcurrentModificationExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.4
°ü·Ã Ç׸ñ:
SelectableChannel, SelectionKey

»ý¼ºÀÚ °³¿ä
protected Selector ()
          ÀÌ Å¬·¡½ºÀÇ »õ·Î¿î ÀνºÅϽº¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.
 
¸Þ¼­µå °³¿ä
abstract  void close ()
          ÀÌ ¼¿·ºÅ͸¦ ´Ý½À´Ï´Ù.
abstract  boolean isOpen ()
          ÀÌ ¼¿·ºÅÍ »óÅ°¡ ¿ÀÇÂÀÏÁö ¾î¶³Áö¸¦ ÆÇ´ÜÇÕ´Ï´Ù.
abstract  Set <SelectionKey > keys ()
          ÀÌ ¼¿·ºÅÍÀÇ Å° ¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static Selector open ()
          ¼¿·ºÅ͸¦ ¿ÀÇÂÇÕ´Ï´Ù.
abstract  SelectorProvider provider ()
          ÀÌ Ã¤³ÎÀÇ ¼Ò½ºÇÁ·Î¹ÙÀÌ´õ¸¦ ¸®ÅÏÇÕ´Ï´Ù.
abstract  int select ()
          ÀÔÃâ·Â Á¶ÀÛÀÇ ½ÇÇàÀÌ °¡´ÉÇÑ ´ëÀÀÇϴ ä³ÎÀ» °¡Áö´Â Å° ¼¼Æ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.
abstract  int select (long timeout)
          ÀÔÃâ·Â Á¶ÀÛÀÇ ½ÇÇàÀÌ °¡´ÉÇÑ ´ëÀÀÇϴ ä³ÎÀ» °¡Áö´Â Å° ¼¼Æ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.
abstract  Set <SelectionKey > selectedKeys ()
          ÀÌ ¼¿·ºÅÍÀÇ ¼±ÅÃµÈ Å° ¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
abstract  int selectNow ()
          ÀÔÃâ·Â Á¶ÀÛÀÇ ½ÇÇàÀÌ °¡´ÉÇÑ ´ëÀÀÇϴ ä³ÎÀ» °¡Áö´Â Å° ¼¼Æ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.
abstract  Selector wakeup ()
           ¾ÆÁ÷ Á¾·áÇÏ°í ÀÖÁö ¾Ê´Â ÃÖÃÊÀÇ ¼±Åà Á¶ÀÛÀ» Áï½Ã Á¾·á½Ãŵ´Ï´Ù.
 
Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

»ý¼ºÀÚ »ó¼¼

Selector

protected Selector()
ÀÌ Å¬·¡½ºÀÇ »õ·Î¿î ÀνºÅϽº¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.

¸Þ¼­µåÀÇ »ó¼¼

open

public static Selector  open()
                     throws IOException 
¼¿·ºÅ͸¦ ¿ÀÇÂÇÕ´Ï´Ù.

»õ·Î¿î ¼¿·ºÅÍ´Â ½Ã½ºÅÛ ÀüüÀÇ µðÆúÆ® SelectorProvider °´Ã¼ÀÇ openSelector ¸Þ¼­µå¸¦ È£ÃâÇϸé ÀÛ¼ºµË´Ï´Ù.

¹Ýȯ°ª:
»õ·Î¿î ¼¿·ºÅÍ
¿¹¿Ü:
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

isOpen

public abstract boolean isOpen()
ÀÌ ¼¿·ºÅÍ »óÅ°¡ ¿ÀÇÂÀÏÁö ¾î¶³Áö¸¦ ÆÇ´ÜÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¼¿·ºÅÍ°¡ ¿ÀÇÂÀÎ °æ¿ì¿¡ ÇÑÁ¤ÇØ true

provider

public abstract SelectorProvider  provider()
ÀÌ Ã¤³ÎÀÇ ¼Ò½ºÇÁ·Î¹ÙÀÌ´õ¸¦ ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ Ã¤³ÎÀÇ ¼Ò½ºÇÁ·Î¹ÙÀÌ´õ

keys

public abstract Set <SelectionKey > keys()
ÀÌ ¼¿·ºÅÍÀÇ Å° ¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.

Å° ¼¼Æ®¸¦ Á÷Á¢ º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù. Å°¸¦ Ãë¼ÒÇÑµÚ Ã¤³ÎÀÇ µî·ÏÀÌ ÇØÁ¦µÈ ½ÃÁ¡¿¡¼­ ±× Å°°¡ »èÁ¦µË´Ï´Ù. Å° ¼¼Æ®¸¦ º¯°æÀ» ½ÃµµÇϸé, UnsupportedOperationExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù.

Å° ¼¼Æ®´Âthread ¼¼ÀÌÇÁ°¡ ¾Æ´Õ´Ï´Ù .

¹Ýȯ°ª:
ÀÌ ¼¿·ºÅÍÀÇ Å° ¼¼Æ®
¿¹¿Ü:
ClosedSelectorException - ÀÌ ¼¿·ºÅÍ°¡ Ŭ·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì

selectedKeys

public abstract Set <SelectionKey > selectedKeys()
ÀÌ ¼¿·ºÅÍÀÇ ¼±ÅÃµÈ Å° ¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.

¼±ÅÃµÈ Å° ¼¼Æ®¿¡ ´ëÇؼ­ Å°ÀÇ »èÁ¦´Â ½Ç½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, Å°¸¦ Á÷Á¢ Ãß°¡ÇÒ ¼ö ¾ø½À´Ï´Ù. ¼±ÅÃµÈ Å° ¼¼Æ®¿¡ ´ëÇؼ­ °´Ã¼ÀÇ Ãß°¡¸¦ ½ÃµµÇϸé, UnsupportedOperationExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù.

¼±ÅÃµÈ Å° ¼¼Æ®´Âthread ¼¼ÀÌÇÁ°¡ ¾Æ´Õ´Ï´Ù .

¹Ýȯ°ª:
ÀÌ ¼¿·ºÅÍÀÇ ¼±ÅÃµÈ Å° ¼¼Æ®
¿¹¿Ü:
ClosedSelectorException - ÀÌ ¼¿·ºÅÍ°¡ Ŭ·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì

selectNow

public abstract int selectNow()
                       throws IOException 
ÀÔÃâ·Â Á¶ÀÛÀÇ ½ÇÇàÀÌ °¡´ÉÇÑ ´ëÀÀÇϴ ä³ÎÀ» °¡Áö´Â Å° ¼¼Æ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ºñºí·ÏÇüÀÇ ¼±Åà Á¶ÀÛÀ» ½ÇÇàÇÕ´Ï´Ù. ÀüȸÀÇ ¼±Åà Á¶ÀÛ ÀÌÈÄ, ¼±Åà °¡´ÉÇÏ°Ô µÉ ¼ö Àִ ä³ÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì, ÀÌ ¸Þ¼­µå´Â Áï½Ã Á¦·Î¸¦ ¸®ÅÏÇÕ´Ï´Ù.

ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇϸé, ÀÌÀü¿¡ È£ÃâÇÑ wakeup ¸Þ¼­µåÀÇ °á°ú°¡ Ŭ¸®¾î µË´Ï´Ù.

¹Ýȯ°ª:
¼±Åà Á¶ÀÛ¿¡ ÀÇÇØ °»½ÅµÈ ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®¸¦ °¡Áö´Â Å°ÀÇ ¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
ClosedSelectorException - ÀÌ ¼¿·ºÅÍ°¡ Ŭ·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì

select

public abstract int select(long timeout)
                    throws IOException 
ÀÔÃâ·Â Á¶ÀÛÀÇ ½ÇÇàÀÌ °¡´ÉÇÑ ´ëÀÀÇϴ ä³ÎÀ» °¡Áö´Â Å° ¼¼Æ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ºí·ÏÇüÀÇ ¼±Åà Á¶ÀÛÀ» ½ÇÇàÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â 1°³ ÀÌ»óÀÇ Ã¤³ÎÀÌ ¼±ÅõǾúÀ» °æ¿ì, ÀÌ ¼¿·ºÅÍÀÇ wakeup ¸Þ¼­µå°¡ ºÒ·Á °¬À» °æ¿ì, ÇöÀçÀÇ thread¿¡ ´ëÇؼ­ ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â ÁöÁ¤ÀÇ Å¸ÀÓ ¾Æ¿ô ±â°£ÀÌ Á¾·áÇßÀ» °æ¿ì¿¡ ÇÑÁ¤ÇØ Á¾·áÇÕ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ¸®¾óŸÀÓ º¸ÁõÀ» ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. Object.wait(long) ¸Þ¼­µå È£Ãâ°ú °°°Ô ŸÀÓ ¾Æ¿ôÀÇ ½ºÄÉÁÙÀ» ÀÛ¼ºÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
timeout - Á¤ÀÇ ¼öÀÇ °æ¿ì, ä³ÎÀÌ ½ÇÇà °¡´É »óÅ°¡ µÇ´Â °ÍÀ» ´ë±âÇÏ´Â µ¿¾È, ºí·Ï µÇ´Â °ÍÀº ÃÖ´ë·Î ´ë·« timeout ¹Ð¸® ¼¼ÄÁµå, Á¦·ÎÀÇ °æ¿ì ¹«±âÇÑÀÇ ºí·Ï. ºÎÀÇ ¼ö´Â ÁöÁ¤ÇÒ ¼ö ¾ø´Ù
¹Ýȯ°ª:
°»½ÅµÈ ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®¸¦ °¡Áö´Â Å°ÀÇ ¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
ClosedSelectorException - ÀÌ ¼¿·ºÅÍ°¡ Ŭ·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
IllegalArgumentException - timeout ÀμöÀÇ °ªÀÌ ºÎÀÇ °æ¿ì

select

public abstract int select()
                    throws IOException 
ÀÔÃâ·Â Á¶ÀÛÀÇ ½ÇÇàÀÌ °¡´ÉÇÑ ´ëÀÀÇϴ ä³ÎÀ» °¡Áö´Â Å° ¼¼Æ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ºí·ÏÇüÀÇ ¼±Åà Á¶ÀÛÀ» ½ÇÇàÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â 1°³ ÀÌ»óÀÇ Ã¤³ÎÀÌ ¼±ÅõǾúÀ» °æ¿ì, ÀÌ ¼¿·ºÅÍÀÇ wakeup ¸Þ¼­µå°¡ ºÒ·Á °¬À» °æ¿ì, ¶Ç´Â ÇöÀçÀÇ thread¿¡ ´ëÇؼ­ ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇßÀ» °æ¿ì¿¡ ÇÑÁ¤ÇØ Á¾·áÇÕ´Ï´Ù.

¹Ýȯ°ª:
°»½ÅµÈ ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®¸¦ °¡Áö´Â Å°ÀÇ ¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
ClosedSelectorException - ÀÌ ¼¿·ºÅÍ°¡ Ŭ·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì

wakeup

public abstract Selector  wakeup()
¾ÆÁ÷ Á¾·áÇÏ°í ÀÖÁö ¾Ê´Â ÃÖÃÊÀÇ ¼±Åà Á¶ÀÛÀ» Áï½Ã Á¾·á½Ãŵ´Ï´Ù.

select() ¸Þ¼­µå ¶Ç´Â select(long) ¸Þ¼­µåÀÇ È£Ãâ½Ã¿¡ ±× ¿ÜÀÇ thread°¡ ºí·Ï µÇ°í ÀÖÀ¸¸é, È£ÃâÀº °ð¹Ù·Î Á¾·áÇÕ´Ï´Ù. ÇöÀç ½ÇÇàÁßÀÇ ¼±Åà Á¶ÀÛÀÌ ¾ø´Â °æ¿ì´Â »çÀü¿¡ selectNow() ¸Þ¼­µå¸¦ È£ÃâÇÏÁö ¾Ê´Â ÇÑ, ´ÙÀ½¹ø È£Ãâ½Ãµµ ÀÌ·¯ÇÑ ¸Þ¼­µå´Â °ð¹Ù·Î Á¾·áÇÕ´Ï´Ù. ÀÌ È£ÃâÀÇ ¹Ýȯ°ªÀº ¾î´À °æ¿ìµµ Á¦·Î ÀÌ¿ÜÀÇ °ªÀÔ´Ï´Ù. ±× ÀÌÈÄ, ´ÙÀ½¹ø È£Ãâ½Ã±îÁö ÀÌ ¸Þ¼­µå¸¦ ÀçÂ÷ È£ÃâÇÏÁö ¾Ê´Â ÇÑ, select() ¸Þ¼­µå ¶Ç´Â select(long) ¸Þ¼­µåÀÇ È£ÃâÀº º¸Åë ´ë·Î ºí·Ï µË´Ï´Ù.

¾î´À ¼±Åà Á¶ÀÛÀ¸·ÎºÎÅÍ ´ÙÀ½ÀÇ ¼±Åà Á¶ÀÛ±îÁöÀÇ »çÀÌ¿¡ ÀÌ ¸Þ¼­µå¸¦ 1ȸ ÀÌ»ó È£ÃâÇصµ, 1ȸ ¸¸ È£ÃâÇßÀ» ¶§¿Í °°Àº °á°ú°¡ µË´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¼¿·ºÅÍ

close

public abstract void close()
                    throws IOException 
ÀÌ ¼¿·ºÅ͸¦ ´Ý½À´Ï´Ù.

ÀÌ ¼¿·ºÅÍÀÇ ¼±Åà ¸Þ¼­µå³»¿¡¼­ ºí·Ï µÇ°í ÀÖ´Â thread°¡ ÀÖ´Â °æ¿ì, ¼¿·ºÅÍÀÇ wakeup ¸Þ¼­µå¸¦ È£ÃâÇßÀ» °æ¿ì¿Í °°°Ô, ÀÌ thread¿¡ ´ëÇÑ ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇÕ´Ï´Ù.

»èÁ¦µÇÁö ¾Ê°í, ¼¿·ºÅÍ¿¡ °ü·ÃµÈ ä·ÎÀÇ Å°´Â ¹«È¿°¡ µË´Ï´Ù. ä³ÎÀÇ µî·ÏÀº ÇØÁ¦µÇ¾î ÀÌ ¼¿·ºÅÍ¿¡ °ü·ÃÇÑ ±× ¿ÜÀÇ ¸ðµç ÀÚ¿øÀÌ ÇعæµË´Ï´Ù.

¼¿·ºÅÍ°¡ Ŭ·Î¿ìÁî ÇÏ°í ÀÖ´Â »óÅ·ΠÀÌ ¸Þ¼­µå¸¦ È£ÃâÇصµ, ¹«½¼ È¿°úµµ ¾ø½À´Ï´Ù.

ÀÏ´Ü Å¬·Î¿ìÁî ÇÑ ¼¿·ºÅ͸¦ ÀçÂ÷ ÀÌ¿ëÇÏ·Á°í Çϸé, ÀÌ ¸Þ¼­µå ¶Ç´Â wakeup ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇØ, ClosedSelectorExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù.

¿¹¿Ü:
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.