JavaTM 2
Platform
Std.  Ed.  v1. 4.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. ¼±Åà Á¶ÀÛÀÌ °³½ÃµÈ ½ÃÁ¡¿¡¼­, ŰÀÇ ´ë»ó ¼¼Æ®¿¡ ³ªÅ¸³ª°í ½ÍÀº Â÷ÀÌÀΰ¡ÀÇ Á¶ÀÛÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â »óÅÂÀÇ Ã¤³ÎÀÌ °»½ÅµÇ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¿¡ ÀÓÇØ¼­, ±âº»ÀÌ µÇ´Â operating system°¡ Á¶È¸µË´Ï´Ù. ÇØ´çÇϴ ä³Î¿¡ ´ëÇØ¼­´Â ´ÙÀ½ÀÇ ¸î°³ÀÇ ¾×¼ÇÀÌ ½ÇÇàµË´Ï´Ù.

    1. ¼±ÅÃµÈ Å° ¼¼Æ®·ÎºÎÅÍ »èÁ¦µÈ ä³ÎÀÇ Å°°¡ ¼¼Æ®¿¡ Ãß°¡µÇ¾î ÇöÀç ÀÌ Ã¤³Î·Î ½ÇÇà °¡´ÉÇÑ Á¶ÀÛÀ» ¾Ë ¼ö ÀÖ°Ô ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®°¡ º¯°æµÈ´Ù. ±× ÀÌÀü¿¡ ½ÇÇà °¡´É ¼¼Æ®¿¡ ±â·ÏµÈ Á¤º¸´Â ÆÄ±âµÈ´Ù

    2. ±× ÀÌ¿ÜÀÇ °æ¿ì ä³ÎÀÇ Å°´Â ¹ú½á ¼±ÅÃµÈ Å° ¼¼Æ®³»¿¡ ÀÖ´Ù. µû¶ó¼­, ½ÇÇà °¡´É Á¶ÀÛ ¼¼Æ®´Â ä³ÎÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â »õ·Î¿î Á¶ÀÛÀ» ¾Ë ¼ö ÀÖ°Ô º¯°æµÈ´Ù. ±× ÀÌÀü¿¡ ½ÇÇà °¡´É ¼¼Æ®¿¡ ±â·ÏµÈ Á¤º¸´Â º¸Á¸µÈ´Ù. Áï, ±âº»ÀÌ µÇ´Â ½Ã½ºÅÛÀ¸·ÎºÎÅÍ µ¹·ÁÁÖ¾îÁö´Â ½ÇÇà °¡´É ¼¼Æ®´Â ºñÆ® ´ÜÀ§·Î ÇöÀçÀÇ ½ÇÇà °¡´É ¼¼Æ® ·Î ºÐ¸®µÈ´Ù

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

3 °³ÀÇ ¼±Åà ¸Þ¼Òµå´Â 1 °³ ÀÌ»óÀÇ Ã¤³ÎÀÌ ½ÇÇà °¡´ÉÇÑ »óŰ¡ µÉ ¶§±îÁö ¼±Åà Á¶ÀÛÀÌ ºí·Ï µÉÁö ¾î¶³Áö ºí·Ï µÇ´Â °æ¿ì´Â ¾î´À Á¤µµÀÇ ±â°£ ºí·Ï µÇ´Â°¡ ÇÏ´Â Á¡ Àܴ̿ º»ÁúÀûÀ¸·Î °°½À´Ï´Ù.

º´Ç༺

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

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

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

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

select() ¸Þ¼Òµå ¶Ç´Â select(long) ¸Þ¼Òµå¿¡ ÀÇÇØ ºí·Ï µÈ thread´Â ´ÙÀ½ÀÇ 3 °³ÀÇ ÃÄ ¸î°³ÀÇ ¹æ¹ýÀ¸·Î, ±× ¿ÜÀÇ thread¿¡ ÀÇÇØ ³¢¾îµé¾îÁý´Ï´Ù.

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

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

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

»ý¼ºÀÚÀÇ °³¿ä
protected Selector ()
          ÀÌ Å¬·¡½ºÀÇ »õ·Î¿î ÀνºÅϽº¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.
 
¸Þ¼ÒµåÀÇ °³¿ä
abstract  void close ()
          ÀÌ ½Ç·ºÅ͸¦ Ŭ·Î¿ìÁî ÇÕ´Ï´Ù.
abstract  boolean isOpen ()
          ÀÌ ½Ç·ºÅÍ »óŰ¡ ¿ÀÇÂÀÏÁö ¾î¶³Áö¸¦ ÆÇ´ÜÇÕ´Ï´Ù.
abstract  Set keys ()
          ÀÌ ½Ç·ºÅÍÀÇ Å° ¼¼Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
static Selector open ()
          ½Ç·ºÅ͸¦ ¿ÀÇÂÇÕ´Ï´Ù.
abstract  SelectorProvider provider ()
          ÀÌ Ã¤³ÎÀÇ ÀÛ¼º¿øÇÁ·Î¹ÙÀÌ´õ¸¦ µ¹·ÁÁÝ´Ï´Ù.
abstract  int select ()
          ÀÔÃâ·Â Á¶ÀÛÀÇ ½ÇÇàÀÌ °¡´ÉÇÑ ´ëÀÀÇϴ ä³ÎÀ» °¡Áö´Â Ű ¼¼Æ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.
abstract  int select (long timeout)
          ÀÔÃâ·Â Á¶ÀÛÀÇ ½ÇÇàÀÌ °¡´ÉÇÑ ´ëÀÀÇϴ ä³ÎÀ» °¡Áö´Â Ű ¼¼Æ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.
abstract  Set 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  keys()
ÀÌ ½Ç·ºÅÍÀÇ Å° ¼¼Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.

Ű ¼¼Æ®¸¦ Á÷Á¢ º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù. ۸¦ Ãë¼ÒÇÑ µÚ, ä³ÎÀÇ µî·ÏÀÌ ÇØÁ¦µÈ ½ÃÁ¡¿¡¼­, ±× ۰¡ »èÁ¦µË´Ï´Ù. Ű ¼¼Æ®¸¦ º¯°æÇÏ·Á°í Çϸé(ÀÚ),UnsupportedOperationException °¡ ½½·Î¿ì µË´Ï´Ù.

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

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

selectedKeys

public abstract Set  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
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ À־ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.