Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Java NIOÀà¿âSelector»úÖÆ½âÎö£¨Ï£©

 
Java NIOÀà¿âSelector»úÖÆ½âÎö£¨Ï£©
 
ÕÔï¿¡¡¡¡ ³Âð©
http://blog.csdn.net/haoel
 
<<<<µã´Ë²é¿´±¾ÎÄÉÏÆª
Îå¡¢  ÃÔ»ó²»½â : ΪʲôҪ×Ô¼ºÏûºÄ×ÊÔ´£¿
 
ÁîÈ˲»½âµÄÊÇΪʲôÎÒÃǵÄJavaµÄNew I/OÒªÉè¼Æ³ÉÕâ¸öÑù×Ó£¿Èç¹û˵ÀϵÄI/O²»Äܶà·¸´Óã¬ÈçÏÂͼËùʾ£¬Òª¿ªN¶àµÄÏß³ÌÈ¥°¤¸öÕìÌýÿһ¸öChannel (ÎļþÃèÊö·û) £¬Èç¹ûÕâÑù×öºÜ·Ñ×ÊÔ´£¬ÇÒЧÂʲ»¸ßµÄ»°¡£ÄÇΪʲôÔÚеÄI/O»úÖÆÒÀÈ»ÐèÒª×Ô¼ºÁ¬½Ó×Ô¼º£¬¶øÇÒ£¬»¹ÊÇÖØ¸´Á¬½Ó£¬ÏûºÄË«±¶µÄ×ÊÔ´£¿
 
ͨ¹ýWEBËÑË÷ÒýÇæÃ»ÓÐÕÒµ½ÎªÊ²Ã´¡£Ö»¿´µ½N¶àµÄÈËÔÚ±¨BUG£¬µ«SUNȴûÓÐÈκνâÊÍ¡£
 
ÏÂÃæÒ»¸öͼչʾÁË£¬ÀϵÄIOºÍÐÂIOµÄÔÚÍøÂç±à³Ì·½ÃæµÄ²î±ð¡£¿´ÆðÀ´NIOµÄÈ·ºÜºÃºÜÇ¿´ó¡£µ«Ëƺõ±ÈÆðC/C++À´Ëµ£¬JavaµÄÕâÖÖʵÏÖ»áÓÐһЩ²»±ØÒªµÄ¿ªÏú¡£
 
 
 
Áù¡¢  Ëüɽ֮ʯ : ´ÓApacheµÄMina¿ò¼ÜÁ˽âSelector
 
ÉÏÃæµÄµ÷²éû¹ý¶à³¤Ê±¼ä£¬ÕýºÃͬѧÕÔ￵ÄÒ»¸öͬÊÂÒ²ÔÚ¿ª·¢ÍøÂç³ÌÐò£¬ÕâλÈÊÐÖʹÓÃÁËApacheµÄMina¿ò¼Ü¡£µ±ÎÒÃǰÑMina¿ò¼ÜµÄÔ´ÂëÑжÁÁËһϺ󡣷¢ÏÖÔÚMinaÖÐÓÐÕâôһ¸ö»úÖÆ£º
 
1£©Mina¿ò¼Ü»á´´½¨Ò»¸öWork¶ÔÏóµÄÏ̡߳£
2£©Work¶ÔÏóµÄÏ̵߳Ärun()·½·¨»á´ÓÒ»¸ö¶ÓÁÐÖÐÄóöÒ»¶ÑChannel£¬È»ºóʹÓÃSelector.select()·½·¨À´ÕìÌýÊÇ·ñÓÐÊý¾Ý¿ÉÒÔ¶Á/д¡£
3£©×î¹Ø¼üµÄÊÇ£¬ÔÚselectµÄʱºò£¬Èç¹û¶ÓÁÐÓÐеÄChannel¼ÓÈ룬ÄÇô£¬Selector.select()»á±»»½ÐÑ£¬È»ºóÖØÐÂselect×îеÄChannel¼¯ºÏ¡£
4£©Òª»½ÐÑselect·½·¨£¬Ö»ÐèÒªµ÷ÓÃSelectorµÄwakeup()·½·¨¡£
 
¶ÔÓÚÊìϤÓÚϵͳµ÷ÓõÄC/C++³ÌÐòÔ±À´Ëµ£¬Ò»¸ö×èÈûÔÚselectÉϵÄÏß³ÌÓÐÒÔÏÂÈýÖÖ·½Ê½¿ÉÒÔ±»»½ÐÑ£º
1£©  ÓÐÊý¾Ý¿É¶Á/д£¬»ò³öÏÖÒì³£¡£
2£©  ×èÈûʱ¼äµ½£¬¼´time out¡£
3£©  ÊÕµ½Ò»¸önon-blockµÄÐźš£¿ÉÓÉkill»òpthread_kill·¢³ö¡£
ËùÒÔ£¬Selector.wakeup()Òª»½ÐÑ×èÈûµÄselect£¬ÄÇôҲֻÄÜͨ¹ýÕâÈýÖÖ·½·¨£¬ÆäÖУº
 
1£©µÚ¶þÖÖ·½·¨¿ÉÒÔÅųý£¬ÒòΪselectÒ»µ©×èÈû£¬Ó¦ÎÞ·¨ÐÞ¸ÄÆätime outʱ¼ä¡£
2£©¶øµÚÈýÖÖ¿´À´Ö»ÄÜÔÚLinuxÉÏʵÏÖ£¬WindowsÉÏûÓÐÕâÖÖÐźÅ֪ͨµÄ»úÖÆ¡£
 
ËùÒÔ£¬¿´À´Ö»ÓеÚÒ»ÖÖ·½·¨ÁË¡£ÔÙ»ØÏ뵽Ϊʲôÿ¸öSelector.open()£¬ÔÚWindows»á½¨Á¢Ò»¶Ô×Ô¼ººÍ×Ô¼ºµÄloopbackµÄTCPÁ¬½Ó£»ÔÚLinuxÉϻῪһ¶Ôpipe£¨pipeÔÚLinuxÏÂÒ»°ã¶¼ÊdzɶԴò¿ª£©£¬¹À¼ÆÎÒÃÇÄܹ»²ÂµÃ³öÀ´——ÄǾÍÊÇÈç¹ûÏëÒª»½ÐÑselect£¬Ö»ÐèÒª³¯×Å×Ô¼ºµÄÕâ¸ölo


Ïà¹ØÎĵµ£º

JavaÉè¼ÆÄ£Ê½Ö®:IteratorÁ´±íģʽ

ÏÈÀ´Á˽âÒ»ÏÂÁ´±íģʽµÄÔ­Àí£º
Ê×ÏÈдһ¸öJavaBean£¬ÄÚÈÝÊÇÒªÌí¼ÓµÄÔªËØºÍ¸ÃÔªËØµÄ½Úµã¡£
public class NodeBean implements Serializable
{
   
    private Object data; //ÔªËØ±¾Éí
    private NodeBean next; //ÏÂÒ»¸ö½Úµã
   
  &n ......

JAVAÏß³ÌÖ®Èý£ºÏß³ÌµÄ¹ÒÆðºÍ»Ö¸´

1£¬¸ÅÊö£ºÏß³ÌµÄ¹ÒÆð²Ù×÷ʵÖÊÉϾÍÊÇʹÏ߳̽øÈë“·Ç¿ÉÖ´ÐД״̬Ï£¬ÔÚÕâ¸ö״̬ÏÂCPU²»»á·Ö¸øÏß³Ìʱ¼äƬ£¬½øÈëÕâ¸ö״̬¿ÉÒÔÓÃÀ´ÔÝÍ£Ò»¸öÏ̵߳ÄÔËÐУ»ÔÚÏß³Ì¹ÒÆðºó£¬¿ÉÒÔͨ¹ýÖØÐ»½ÐÑÏß³ÌÀ´Ê¹Ö®»Ö¸´ÔËÐС£µ±Ò»¸öÏ߳̽øÈë“·Ç¿ÉÖ´ÐД״̬£¬¼´¹ÒÆð״̬ʱ£¬±ØÈ»´æÔÚijÖÖÔ­ÒòʹÆä²»ÄܼÌÐøÔËÐУ¬ÕâЩԭÒò¿ÉÄÜ ......

Java ¶ÔÏóÐòÁл¯

Java 1.1ÔöÌíÁËÒ»ÖÖÓÐȤµÄÌØÐÔ£¬ÃûΪ¡°¶ÔÏóÐòÁл¯¡±£¨Object Serialization£©¡£ËüÃæÏòÄÇЩʵÏÖÁËSerializable½Ó¿ÚµÄ¶ÔÏ󣬿ɽ«ËüÃÇת»»³ÉһϵÁÐ×Ö½Ú£¬²¢¿ÉÔÚÒÔºóÍêÈ«»Ö¸´»ØÔ­À´µÄÑù×Ó¡£ÕâÒ»¹ý³ÌÒà¿Éͨ¹ýÍøÂç½øÐС£ÕâÒâζ×ÅÐòÁл¯»úÖÆÄÜ×Ô¶¯²¹³¥²Ù×÷ϵͳ¼äµÄ²îÒì¡£»»¾ä»°Ëµ£¬¿ÉÒÔÏÈÔÚWindows»úÆ÷ÉÏ´´½¨Ò»¸ö¶ÔÏó£¬¶ÔÆäÐòÁл¯£ ......

javaѧϰ֮·´Éä»úÖÆ


  ʲôÊÇ·´Éä
      java³ÌÐò¿ÉÒÔÔÚÔËÐÐÆÚ¼ä¶¯Ì¬µÄ¼ÓÔØ¡¢½âÎöºÍʹÓÃһЩÔÚ±àÒë½×¶Î²¢²»È·¶¨µÄÀàÐÍ£¬ÕâÒ»»úÖÆ±»³ÆÎª“·´É䣨reflection£©”»òÕß“ÄÚÊ¡£¨introspection£©”.
  ·´Éä»úÖÆÌṩµÄ¹¦ÄÜ
    1£¬¼ÓÔØÔËÐÐʱ²ÅÄÜÈ·¶¨µÄÀàÐÍ
   ......

javaµÄdoubleµÄ¾«¶ÈÎÊÌâ

ÔÚjavaÖУ¬Ê¹ÓÃdouble½øÐÐÔËË㣬ÓÐʱ»á³öÏÖ¾«¶È¶ªÊ§µÄÎÊÌ⣬ֵ»áÓÐÄÇô0.00000***1Æ«²îµÄÆ«²î£¬µ¼ÖÂÆ¥ÅäУÑé³£³£³öÏÖÎÊÌâ
½â¾ö·½°¸ÈçÏÂ:
  /** 
     * ¶ÔdoubleÊý¾Ý½øÐÐÈ¡¾«¶È. 
     * @param value  doubleÊý¾Ý. 
     * ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ