JavaTM 2
Platform
Std.  Ed.  v1. 4.0

ÆÐŰÁö java.nio.channels

ÀÔÃâ·Â Á¶ÀÛÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â ¿£Æ¼Æ¼ (ÆÄÀÏ, ¼ÒÄϵî)¿¡ÀÇ Á¢¼ÓÀ» ³ªÅ¸³»´Â ä³ÎÀ̳ª, ´ÙÁßÈ­ µÈ ºñºí·Ï ÀÔÃâ·Â Á¶ÀÛ¿ëÀÇ ½Ç·ºÅ͸¦ Á¤ÀÇÇÕ´Ï´Ù.

ÂüÁ¶:
          ¼³¸í

ÀÎÅÍÆäÀ̽ºÀÇ °³¿ä
ByteChannel ¹ÙÀÌÆ®ÀÇ read¿Í ±âÀÔÀ» ÇÒ ¼ö Àִ ä³ÎÀÔ´Ï´Ù.
Channel ÀÔÃâ·Â Á¶ÀÛ¿¡ °ü°èÇϴ ä³ÎÀÔ´Ï´Ù.
GatheringByteChannel ¹öÆÛ ¼øÂ÷ ¼ø¼­·ÎºÎÅÍ ¹ÙÀÌÆ®¸¦ ±âÀÔÇÒ ¼ö°¡ Àִ ä³ÎÀÔ´Ï´Ù.
InterruptibleChannel ºñµ¿±âÀÇ Å¬·Î¿ìÁ ¼¼Ä¡±â°¡ °¡´ÉÇÑ Ã¤³ÎÀÔ´Ï´Ù.
ReadableByteChannel ¹ÙÀÌÆ®¸¦ Àо ¼ö°¡ Àִ ä³ÎÀÔ´Ï´Ù.
ScatteringByteChannel ¹öÆÛ ¼øÂ÷ ¼ø¼­¿¡ ¹ÙÀÌÆ®¸¦ ÀоîµéÀÏ ¼ö°¡ Àִ ä³ÎÀÔ´Ï´Ù.
WritableByteChannel ¹ÙÀÌÆ®¸¦ ±âÀÔÇÒ ¼ö°¡ Àִ ä³ÎÀÔ´Ï´Ù.
 

Ŭ·¡½ºÀÇ °³¿ä
Channels ä³Î°ú ½ºÆ®¸²À» À§ÇÑ À¯Æ¿¸®Æ¼ ¸Þ¼ÒµåÀÔ´Ï´Ù.
DatagramChannel µ¥ÀÌÅÍ ±×·¥Çü ¼ÒÄÏÀÇ ¼±Åà °¡´ÉÇÑ Ã¤³ÎÀÔ´Ï´Ù.
FileChannel ÆÄÀÏÀÇ Àоîµé¿©, ±âÀÔÇØ, ¸ÅÇÎ, Á¶ÀÛ¿ë ä³ÎÀÔ´Ï´Ù.
FileChannel.MapMode ÆÄÀÏ ¸ÅÇιæ½ÄÀÇ ÇüÅ ÇÁ·ÎÅØ¼ÇµÈ ¿­°ÅÀÔ´Ï´Ù.
FileLock ÆÄÀÏ area»óÀÇ ¶ôÀ» ³ªÅ¸³»´Â ÅäÅ«ÀÔ´Ï´Ù.
Pipe ´Ü¹æÇâ ÆÄÀÌÇÁ¸¦ ±¸ÇöÇÏ´Â 1Á¶ÀÇ Ã¤³ÎÀÔ´Ï´Ù.
Pipe.SinkChannel Pipe ÀÇ ±âÀÔÃøÀ» ³ªÅ¸³»´Â ä³ÎÀÔ´Ï´Ù.
Pipe.SourceChannel Pipe ÀÇ readÃøÀ» ³ªÅ¸³»´Â ä³ÎÀÔ´Ï´Ù.
SelectableChannel Selector °æÀ¯·Î ´ÙÁßÈ­ÇÒ ¼ö Àִ ä³ÎÀÔ´Ï´Ù.
SelectionKey SelectableChannel °¡ Selector ¿¡ µî·ÏµÇ¾î ÀÖ´Â °ÍÀ» ³ªÅ¸³»´Â ÅäÅ«ÀÔ´Ï´Ù.
Selector SelectableChannel ¿ÀºêÁ§Æ®ÀÇ ¸ÖƼÇ÷º¼­ÀÔ´Ï´Ù.
ServerSocketChannel ½ºÆ®¸²Çü ¸®½º´×¼ÒÄÏÆ®¿ëÀÇ ¼±Åà °¡´ÉÇÑ Ã¤³ÎÀÔ´Ï´Ù.
SocketChannel ½ºÆ®¸²Çü Á¢¼Ó ¼ÒÄÏ¿ëÀÇ ¼±Åà °¡´É ä³ÎÀÔ´Ï´Ù.
 

¿¹¿ÜÀÇ °³¿ä
AlreadyConnectedException ¹ú½á Á¢¼ÓµÇ°í ÀÖ´Â SocketChannel ¿¡ÀÇ Á¢¼ÓÀ» ½ÃµµÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
AsynchronousCloseException ´Ù¸¥ thread°¡ ä³Î ¶Ç´Â ÀÔÃâ·Â Á¶À۽ÿ¡ ºí·Ï µÇ´Â ä³ÎÀÇ ÀϺθ¦ Ŭ·Î¿ìÁî ÇßÀ» ¶§¿¡ thread°¡ ¹Þ´Â üũ ¿¹¿ÜÀÔ´Ï´Ù.
CancelledKeyException ¹ú½á ¹«È¿°¡ µÈ ¼±Åà ۸¦ »ç¿ëÇÏ·Á°í ÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
ClosedByInterruptException thread°¡ ä³Î¿¡¼­ÀÇ ÀÔÃâ·Â Á¶ÀÛÀ¸·Î ºí·Ï µÇ°í ÀÖ´Â °Í¿¡µµ ºÒ±¸Çϰí, ´Ù¸¥ thread·ÎºÎÅÍ ¼¼Ä¡±â¸¦ ¹Þ¾ÒÀ» °æ¿ì¿¡ ¼ö½ÅÇϴ üũ ¿¹¿ÜÀÔ´Ï´Ù.
ClosedChannelException Ŭ·Î¿ìÁî ÇÑ Ã¤³Î¿¡ ´ëÇÑ ÀÔÃâ·Â Á¶ÀÛÀ» ½Ç½ÃÇÏ·Á°í ÇßÀ» ¶§, ¶Ç´Â ½ÇÇàÇÏ·Á°í ÇÑ ÀÔÃâ·Â Á¶ÀÛ¿¡ ´ëÇØ¼­ ±× ä³ÎÀÌ Å¬·Î¿ìÁî µÇ°í ÀÖ´Â °æ¿ì¿¡ ½½·Î¿ì µÇ´Â üũ ¿¹¿ÜÀÔ´Ï´Ù.
ClosedSelectorException Ŭ·Î¿ìÁî ÇÑ ½Ç·ºÅÍ¿¡ ´ëÇÑ ÀÔÃâ·Â Á¶ÀÛÀ» È£ÃâÇÏ·Á°í ÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
ConnectionPendingException ºñºí·Ï Á¢¼Ó Á¶ÀÛÀÇ ÁøÇàÁß¿¡ SocketChannel ¿¡ Á¢¼ÓÇÏ·Á°í ÇßÀ» ¶§ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
FileLockInterruptionException ÆÄÀÏ ¶ôÀÇ È¹µæÀ» ´ë±âÇϰí ÀÖ´Â thread¿¡ ´ëÇØ¼­ ´Ù¸¥ thread·ÎºÎÅÍ ¼¼Ä¡±â°¡ ÀÖ¾úÀ» ¶§¿¡ ¼öÃëµÇ´Â üũ ¿¹¿ÜÀÔ´Ï´Ù.
IllegalBlockingModeException ºí·Ï ¸ðµå°¡ ºÎÁ¤Çؿ信, ä³Î»ó¿¡¼­ ºí·Ï ¸ðµå °íÀ¯ÀÇ Á¶ÀÛÀ» È£ÃâÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
IllegalSelectorException ä³ÎÀÇ ÀÛ¼º¿øÇÁ·Î¹ÙÀÌ´õ À̿ܰ¡ ÀÛ¼ºÇÑ ½Ç·ºÅÍ¿¡ ä³ÎÀ» µî·ÏÇÏ·Á°í ÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
NoConnectionPendingException SocketChannel ÀÇ connect ¸Þ¼ÒµåÀÇ È£ÃâÀÌ ¾ÆÁ÷ ¿Ï·áÇϰí ÀÖÁö ¾Ê´Âµ¥,finishConnect ¸Þ¼Òµå°¡ ºÒ·Á °¬À» °æ¿ì¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
NonReadableChannelException óÀ½Àº ÀÐÀ» À§ÇØ(¶§¹®¿¡) ¿ÀǵǾî ÀÖÁö ¾Ê¾Ò´ø ä³Î·ÎºÎÅÍ read¸¦ ½Ç½ÃÇÏ·Á°í ÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
NonWritableChannelException óÀ½Àº ±âÀÔÀ» À§Çؼ­(¶§¹®¿¡) ¿ÀǵǾî ÀÖÁö ¾Ê¾Ò´ø ä³Î¿¡ ´ëÇØ¼­ ±âÀÔÀ» ½Ç½ÃÇÏ·Á°í ÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
NotYetBoundException ¹Ì¹ÙÀεåÀÇ ¼­¹ö ¼ÒÄÏ Ã¤³Î»ó¿¡¼­ ÀÔÃâ·Â Á¶ÀÛÀ» È£ÃâÇÏ·Á°í ÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
NotYetConnectedException ¹ÌÁ¢¼ÓÀÇ ¼ÒÄÏ Ã¤³Î»ó¿¡¼­ ÀÔÃâ·Â Á¶ÀÛÀ» È£ÃâÇÏ·Á°í ÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
OverlappingFileLockException ¶ôÀ» ȹµæÇÏ·Á°í ÇÑ ÆÄÀÏ area°¡, ¹ú½á °°Àº Java °¡»ó ¸Ó½Å¿¡ ÀÇÇØ ¶ô µÇ°í ÀÖ´Â area¿¡ ¿À¹ö·¦ Çϰí ÀÖ´Â °æ¿ì, ¶Ç´Â ±× ¿ÜÀÇ thread°¡ °°Àº ÆÄÀÏÀÇ ¿À¹ö·¦ Çϰí ÀÖ´Â area¸¦ Àá±×·Á°í ´ë±âÇϰí ÀÖ´Â °æ¿ì¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
UnresolvedAddressException ¹ÌÇØ°áÀÇ ¼ÒÄÏ ÁÖ¼Ò¿¡ ´ëÇØ¼­ ³×Æ®¿öÅ© Á¶ÀÛÀ» È£ÃâÇÏ·Á°í ÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
UnsupportedAddressTypeException ¼­Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº ÇüÅÂÀÇ ¼ÒÄÏ ÁÖ¼Ò¿¡ ¹ÙÀÎµå ¶Ç´Â Á¢¼ÓÇÏ·Á°í ÇßÀ» ¶§¿¡ ½½·Î¿ì µÇ´Â üũµÇÁö ¾Ê´Â ¿¹¿ÜÀÔ´Ï´Ù.
 

ÆÐŰÁö java.nio.channels ÀÇ ¼³¸í

ÀÔÃâ·Â Á¶ÀÛÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â ¿£Æ¼Æ¼ (ÆÄÀÏ, ¼ÒÄϵî)¿¡ÀÇ Á¢¼ÓÀ» ³ªÅ¸³»´Â ä³ÎÀ̳ª, ´ÙÁßÈ­ µÈ ºñºí·Ï ÀÔÃâ·Â Á¶ÀÛ¿ëÀÇ ½Ç·ºÅ͸¦ Á¤ÀÇÇÕ´Ï´Ù.

ä³Î

Channel ÀÔÃâ·Â Á¶ÀÛÀ» ÇÏ´Â Àå¼Ò
  ReadableByteChannel ¹öÆÛ¿¡ÀÇ read¸¦ ½Ç½ÃÇÑ´Ù
    ScatteringByteChannel    ¹öÆÛ ¼øÂ÷ ¼ø¼­¿¡ÀÇ read¸¦ ½Ç½ÃÇÑ´Ù
  WritableByteChannel ¹öÆÛ·ÎºÎÅÍÀÇ ¼­µÎ¸¦ ½Ç½ÃÇÑ´Ù
    GatheringByteChannel ¹öÆÛ ¼øÂ÷ ¼ø¼­·ÎºÎÅÍÀÇ ¼­µÎ¸¦ ½Ç½ÃÇÑ´Ù
  ByteChannel ¹öÆÛ¿¡ÀÇ Àоîµé¿©, ¹öÆÛ·ÎºÎÅÍÀÇ ¼­µÎ¸¦ ½Ç½ÃÇÑ´Ù
Channel ä³Î°ú ½ºÆ®¸²ÀÇ »óÈ£ ¿î¿ëÀ» À§ÇÑ À¯Æ¿¸®Æ¼ ¸Þ¼Òµå

¡¸Ã¤³Î¡¹Àº ¿£Æ¼Æ¼ (Çϵå¿þ¾î µð¹ÙÀ̽º, ÆÄÀÏ, ³×Æ®¿öÅ© ¼ÒÄϵî)¿¡ÀÇ ¿ÀÇ Á¢¼Ó, ¶Ç´Â 1 °³ ÀÌ»óÀÇ ÀÔÃâ·Â Á¶ÀÛ (Àоîµé¿©, ±âÀÔµî)À» ½ÇÇàÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ ÄÄÆÛ³ÍÆ®¸¦ ³ªÅ¸³À´Ï´Ù. Channel ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤ ´ë·Î, ä³ÎÀº ¿ÀÇÂÈ­ Ŭ·Î¿ìÁî°¡ µË´Ï´Ù. ¾î´À ÂÊ »óÅÂÀÇ Ã¤³Îµµ, ¡¸ºñµ¿±â Ŭ·Î¿ìÁî °¡´É¡¹ÇÑÆí ¡¸¼¼Ä¡±â °¡´É¡¹ÀÔ´Ï´Ù.

Channel ÀÎÅÍÆäÀ̽º´Â »õ·Î¿î ÀÔÃâ·Â Á¶ÀÛÀ» ÁöÁ¤ÇÏ´Â º¹¼öÀÇ ÀÎÅÍÆäÀ̽º¿¡ ÀÇÇØ È®ÀåµË´Ï´Ù.

ReadableByteChannel ÀÎÅÍÆäÀ̽º´Â ä³Î·ÎºÎÅÍ ¹öÆÛ¿¡ ¹ÙÀÌÆ®¸¦ ÀоîµéÀÌ´Â read ¸Þ¼Òµå¸¦ ÁöÁ¤ÇÕ´Ï´Ù. °°ÀÌWritableByteChannel ÀÎÅÍÆäÀ̽º´Â ¹öÆÛ·ÎºÎÅÍ Ã¤³Î¿¡ ¹ÙÀÌÆ®¸¦ ½á³»´Â write ¸Þ¼Òµå¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ByteChannel ÀÎÅÍÆäÀ̽º´Â À̰͵é 2 °³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÀÏÇÑ ÀÎÅÍÆäÀ̽ºÀ̸ç, ¹ÙÀÌÆ®ÀÇ read¿Í ¼­µÎÀÇ ¾çÂÊ ¸ðµÎ¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â ÀϹÝÀûÀΠä³Î·Î »ç¿ëµË´Ï´Ù.

½Ì±Û ¹öÆÛ´Â ¾Æ´Ï°í º¹¼öÀÇ ¹öÆÛÀÇ ¼øÂ÷ ¼ø¼­¸¦ »ç¿ëÇÏ´Â read ¸Þ¼Òµå¿Í write ¸Þ¼Òµå¸¦ Ãß°¡ÇÏ´Â °ÍÀ¸·Î½á,ScatteringByteChannel ÀÎÅÍÆäÀ̽º´Â ReadableByteChannel ÀÎÅÍÆäÀ̽º,GatheringByteChannel ÀÎÅÍÆäÀ̽º´Â WritableByteChannel ÀÎÅÍÆäÀ̽º¸¦ È®ÀåÇÕ´Ï´Ù.

Channels À¯Æ¿¸®Æ¼ Ŭ·¡½º´Â java.io ÆÐŰÁöÀÇ ½ºÆ®¸² Ŭ·¡½º¿Í ÀÌ ÆÐŰÁöÀÇ Ã¤³Î Ŭ·¡½ºÀÇ Á¦ÈÞ¸¦ ¼­Æ÷Æ®ÇÏ´Â Á¤Àû ¸Þ¼Òµå¸¦ Á¤ÀÇÇÕ´Ï´Ù. ÀûÀýÇÑ Ã¤³ÎÀº InputStream ³ª OutputStream ·ÎºÎÅÍ ±¸ÃàÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹Ý´ë·Î,InputStream ³ª OutputStream ´Â ´ÜÀÏÀÇ Ã¤³Î·ÎºÎÅÍ ±¸ÃàÇÒ ¼ö ÀÖ½À´Ï´Ù. Reader ´Â ÁöÁ¤µÈ ij¸¯ÅÍ ¼¼Æ®¸¦ »ç¿ëÇØ ÁöÁ¤µÈ read °¡´ÉÇÑ ¹ÙÀÌÆ® ä³ÎÀÇ ¹ÙÀÌÆ®¸¦ µðÄÚµåÇϵµ·Ï(µíÀÌ) ±¸ÃàÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹Ý´ë·Î,Writer ´Â ÁöÁ¤µÈ ij¸¯ÅÍ ¼¼Æ®¸¦ »ç¿ëÇØ ij¸¯Å͸¦ ¹ÙÀÌÆ®¿¡ encode ÇØ, ÁöÁ¤µÈ ±âÀÔ °¡´ÉÇÑ ¹ÙÀÌÆ® ä³Î¿¡ ±âÀÔÇϵµ·Ï(µíÀÌ) ±¸ÃàÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÆÄÀÏ Ã¤³Î

FileChannel ÆÄÀÏÀÇ Àоîµé¿©, ±âÀÔÇØ, ¸ÅÇÎ, Á¶ÀÛ
FileLock ÆÄÀÏÀÇ (areaÀÇ) ¶ô
MappedByteBuffer    ÆÄÀÏ area¿¡ ¸ÅÇÎ µÇ´Â ´ÙÀÌ·ºÆ® byte ¹öÆÛ

FileChannel Ŭ·¡½º´Â ÇöÀçÀÇ ÆÄÀÏ À§Ä¡ÀÇ Á¶È¸ ¹× º¯°æ, ÆÄÀÏÀÇ ¸»¹ÌÀÇ Àß¶ó¼­ ¹ö¸²¿¡ ÀÇÇÑ Æ¯Á¤ÀÇ »çÀÌÁî¿¡ÀÇ º¯°æ¿Ü, ÆÄÀÏ¿¡ Á¢¼ÓµÈ ä³Î·ÎºÎÅÍÀÇ ¹ÙÀÌÆ®ÀÇ Àоîµé¿©, ÆÄÀÏ¿¡ Á¢¼ÓµÈ ä³Î¿¡ÀÇ ¹ÙÀÌÆ®ÀÇ ±âÀÔÀ̶ó°í ÇÑ ÀϹÝÀûÀÎ Á¶ÀÛÀ» ¼­Æ÷Æ®ÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â ÆÄÀÏ Àüü ¶Ç´Â ÆÄÀϳ»ÀÇ Æ¯Á¤ÀÇ areaÀÇ ¶ôÀ» ȹµæÇÏ´Â ¸Þ¼Òµå¸¦ Á¤ÀÇÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ¼Òµå´Â FileLock Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ µ¹·ÁÁÝ´Ï´Ù. FileChannel Ŭ·¡½º´Â ÆÄÀÏÀÇ °»½Å ³»¿ëÀ», ÀÌ ÆÄÀÏÀÌ ÀúÀåµÇ°í ÀÖ´Â ±â¾ïÀåÄ¡¿¡ °­Á¦ÀûÀ¸·Î ±âÀÔÇÏ´Â ¸Þ¼Òµåµµ Á¤ÀÇÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ¼Òµå¿¡ ÀÇÇØ, ÆÄÀϰú ±× ¿ÜÀÇ Ã¤³Î°£ÀÇ ¹ÙÀÌÆ®ÀÇ ±³È¯ÀÌ È¿À²È­µË´Ï´Ù. ¶Ç, ÆÄÀÏ area¸¦ Á÷Á¢ ¸Þ¸ð¸®¿¡ ¸ÅÇÎ ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÌ ¸¶Áö¸· Á¶ÀÛÀ¸·Î ÀÛ¼ºµÇ´Â MappedByteBuffer Ŭ·¡½ºÀÇ ÀνºÅϽº´Â ÆÄÀÏ °ü·Ã Á¶ÀÛ¿¡ ÀÇÇØ ByteBuffer Ŭ·¡½º¸¦ È®ÀåÇÕ´Ï´Ù.

java.io ÆÐŰÁöÀÇ FileInputStream Ŭ·¡½º,FileOutputStream Ŭ·¡½º,RandomAccessFile Ŭ·¡½º¿¡´Â getChannel ¸Þ¼Òµå°¡ Ãß°¡µÇ°í ÀÖ½À´Ï´Ù. ÀÌ 3 krÀÇ ÃÄ ¸î°³ÀÇ Å¬·¡½ºÀÇ ÀνºÅϽº»ó¿¡¼­ getChannel ¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ), ±âº»ÀÌ µÇ´Â ÆÄÀÏ¿¡ Á¢¼ÓµÈ ÆÄÀÏ Ã¤³ÎÀÌ µ¹·ÁÁÖ¾îÁý´Ï´Ù.

´ÙÁßÈ­ µÈ ºñºí·Ï ÀÔÃâ·Â

SelectableChannel ´ÙÁßÈ­ °¡´ÉÇÑ Ã¤³Î
  DatagramChannel java.net.DatagramSocket ÀÇ Ã¤³Î
  Pipe.SinkChannel ÆÄÀÌÇÁÀÇ ±âÀÔÃø
  Pipe.SourceChannel ÆÄÀÌÇÁÀÇ readÃø
  ServerSocketChannel    java.net.ServerSocket ÀÇ Ã¤³Î
  SocketChannel java.net.Socket ÀÇ Ã¤³Î
Selector ¼±Åà °¡´É ä³ÎÀÇ ¸ÖƼÇ÷º¼­
SelectionKey ½Ç·ºÅÍ¿¡ÀÇ Ã¤³ÎÀÇ µî·ÏÀ» ³ªÅ¸³½´Ù
ÅäÅ«
Pipe ´Ü¹æÇâ ÆÄÀÌÇÁ¸¦ Çü¼ºÇÏ´Â 2 °³ÀÇ Ã¤³Î

½Ç·ºÅÍ, ¼±Åà °¡´É ä³Î, ¼±Åà Ű¿¡ ÀÇÇØ Á¦°øµÇ´Â ´ÙÁßÈ­ µÈ ºñºí·Ï ÀÔÃâ·ÂÀº thread ÁöÇâÀÇ ºí·Ï ÀÔÃâ·Âº¸´Ù ½ºÄÉÀ̶óºÒÀÔ´Ï´Ù.

½Ç·ºÅʹ¼±Åà °¡´É ä³ÎÀÇ ¸ÖƼÇ÷º¼­ÀÔ´Ï´Ù. ¼±Åà °¡´É ä³ÎÀº ºñºí·Ï ¸ðµå·Î ºÐ·ùµÇ´Â Ư¼öÇÑ Ã¤³ÎÀ̱⵵ ÇÕ´Ï´Ù. ´ÙÁßÈ­ ÀÔÃâ·Â Á¶ÀÛÀ» ½ÇÇàÇÏ°í ½ÍÀº °æ¿ì´Â ¿ì¼± ¼±Åà °¡´É ä³ÎÀ» 1 °³ ÀÌ»ó ÀÛ¼ºÇÕ´Ï´Ù. ´ÙÀ½¿¡, À̰ÍÀ» ºñºí·Ï ¸ðµå·Î ÇØ, ½Ç·ºÅÍ¿¡µî·Ï ÇÕ´Ï´Ù. ä³ÎÀ» µî·ÏÇϸé(ÀÚ), ÀÏ·ÃÀÇ ÀÔÃâ·Â Á¶ÀÛÀÌ ÁöÁ¤µË´Ï´Ù. ½Ç·ºÅÍ´Â ÁغñÀÇ ÀÏȯÀ¸·Î¼­ ÀÌ·¯ÇÑ Á¶ÀÛÀ» Å×½ºÆ®ÇØ, µî·ÏÀ» ³ªÅ¸³»´Â¼±Åà ۸¦ µ¹·ÁÁÝ´Ï´Ù.

½Ç·ºÅÍ¿¡ ä³ÎÀ» µî·ÏÇϸé(ÀÚ), ¹üÀ§°¡ ¹Ì¸® ¼±¾ðµÇ°í ÀÖ´Â 1 °³ ÀÌ»óÀÇ Á¶ÀÛÀÇ ½ÇÇàÀÌ °¡´ÉÇÏ°Ô µÈ ä³ÎÀ» °ËÃâÇϱâ À§ÇØ(¶§¹®¿¡),¼±Åà Á¶ÀÛÀ» ½ÇÇàÇÕ´Ï´Ù. ä³ÎÀÇ Áغñ°¡ µÇ¾î ÀÖÀ¸¸é, µî·Ï½Ã¿¡ µ¹·ÁÁÖ¾îÁø ۰¡ ½Ç·ºÅÍÀÇ ¡¸¼±Åà Ű ¼¼Æ®¡¹¿¡ Ãß°¡µË´Ï´Ù. ÀÌ Å° ¼¼Æ®¿Í ÀÌ ¼¼Æ®¿¡ Æ÷ÇԵǴ Ű¸¦ Á¶»çÇÏ´Â °ÍÀ¸·Î, °¢ ä³ÎÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â Á¶ÀÛÀ» ÆÇ´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿ä±¸µÈ ÀÔÃâ·Â Á¶ÀÛÀ» ½ÇÇàÇϱâ À§ÇØ(¶§¹®¿¡), °¢ Ű·ÎºÎÅÍ ´ëÀÀÇϴ ä³ÎÀ» ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.

¼±Åà Ű´Â ±× ä³ÎÀÌ ÀÖ´Â Á¶ÀÛÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â »óŰ¡ µÇ¾î ÀÖ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. ´Ù¸¸, À̰ÍÀº ´Ü¼øÇÑ ÈùÆ®À̸ç, thread°¡ ºí·Ï µÇ´Â ÀÏ ¾øÀÌ ÀÖ´Â Á¶ÀÛÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â °ÍÀ» ÇÁ·ÎÅØ¼ÇÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ÈùÆ®ÀÇ ³»¿ëÀÌ ºÐ¸íÇÏ°Ô ºÎÁ¤ÇÑ °æ¿ì´Â À̰ÍÀ» ¹«½ÃÇϱâ À§Çؼ­, ´ÙÁßÈ­ ÀÔÃâ·Â 󸮸¦ ½ÇÇàÇÏ´Â Äڵ带 ±âÀÔÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

ÀÌ ÆÐŰÁö´Â java.net ÆÐŰÁö¿¡ Á¤Àǵǰí ÀÖ´Â DatagramSocket Ŭ·¡½º,ServerSocket Ŭ·¡½º,Socket Ŭ·¡½º¿¡ ´ëÀÀÇÏ´Â ¼±Åà °¡´É ä³Î Ŭ·¡½º¸¦ Á¤ÀÇÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Å¬·¡½º¿¡´Â ä³Î¿¡ °ü·ÃÇÑ ¼ÒÄÏÀ» ¼­Æ÷Æ®ÇÒ ¼ö ÀÖ°Ô, ¼Ò±Ô¸ðÀÇ º¯°æÀÌ ´õÇØÁö°í ÀÖ½À´Ï´Ù. ÀÌ ÆÐŰÁö´Â ´Ü¹æÇâ ÆÄÀÌÇÁ¸¦ ±¸ÇöÇÏ´Â ´Ü¼øÇÑ Å¬·¡½ºµµ Á¤ÀÇÇÕ´Ï´Ù. »õ·Î¿î ¼±Åà °¡´É ä³ÎÀº Ç×»ó, ´ëÀÀÇϴ Ŭ·¡½ºÀÇ Á¤ÀûÀÎ open ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °Í¿¡ ÀÇÇØ ÀÛ¼ºµË´Ï´Ù. ä³ÎÀÌ °ü·Ã ¼ÒÄÏÀ» ÇÊ¿ä·Î Çϰí ÀÖ´Â °æ¿ì´Â ÀÌ Á¶ÀÛÀÇ ºÎÀÛ¿ëÀ¸·Î¼­ ¼ÒÄÏÀÌ ÀÛ¼ºµË´Ï´Ù.

½Ç·ºÅÍ, ¼±Åà °¡´É ä³Î, ¼±Åà ŰÀÇ ±¸ÇöÀ» ¿Å°Ü³õ°í ½ÍÀº °æ¿ì´Â java.nio.channels.spi ÆÐŰÁö¿¡ Á¤Àǵǰí ÀÖ´Â SelectorProvider Ŭ·¡½ºÀÇ ´ëü Á¤ÀÇ ¶Ç´Â ÀνºÅϽº¸¦ Ç÷¯±× ÀÎ ÇÕ´Ï´Ù. ´Ù¸¸, ÀÌ ±â´ÉÀº ¸ðµç °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î ÇÑ ±â´ÉÀÌ ¾Æ´Õ´Ï´Ù. À̰ÍÀº ¸Å¿ì ³ôÀº ¼º´ÉÀÌ ¿ä±¸µÇ´Â °æ¿ì¿¡, operating system °íÀ¯ÀÇ ÀÔÃâ·Â ´ÙÁßÈ­ ¸ÞÄ«´ÏÁòÀ» Ȱ¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ´Â »ó±Þ À¯ÀúÀü¿ë ±â´ÉÀÔ´Ï´Ù.

´ÙÁßÈ­ ÀÔÃâ·ÂÀÇ Ãß»óÀ» ±¸ÇöÇϱâ À§Çؼ­ ÇÊ¿äÇÏ°Ô µÇ´Â µî·Ï ¹× µ¿±â 󸮴 ´ëºÎºÐÀÇ °æ¿ì,java.nio.channels.spi ÆÐŰÁöÀÇ AbstractInterruptibleChannel Ŭ·¡½º,AbstractSelectableChannel Ŭ·¡½º,AbstractSelectionKey Ŭ·¡½º,AbstractSelector Ŭ·¡½º¿¡ ÀÇÇØ ½ÇÇàµË´Ï´Ù. Ä¿½ºÅÒ ½Ç·ºÅÍ ÇÁ·Î¹ÙÀÌ´õ¸¦ Á¤ÀÇÇÒ ¶§, Á÷Á¢ ¼­ºê Ŭ·¡½ºÈ­ µÇ´Â °ÍÀº AbstractSelector Ŭ·¡½º¿Í AbstractSelectionKey Ŭ·¡½º »ÓÀÔ´Ï´Ù. Ä¿½ºÅÒ Ã¤³Î Ŭ·¡½º´Â ÀÌ ÆÐŰÁö¿¡ Á¤Àǵǰí ÀÖ´Â ÀûÀýÇÑ SelectableChannel ¼­ºê Ŭ·¡½º¸¦ È®ÀåÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

µµÀÔµÈ ¹öÁ¯:
1.4

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.