ͨ¹ý¹Û²ìÕßģʽºÍReactorģʽÉîÈëÀí½âJAVA NIO Ïß³Ì
Java¡¡NIO·Ç¶ÂÈûÓ¦ÓÃͨ³£ÊÊÓÃÓÃÔÚI/O¶ÁдµÈ·½Ã棬ÎÒÃÇÖªµÀ£¬ÏµÍ³ÔËÐеÄÐÔÄÜÆ¿¾±Í¨³£ÔÚI/O¶Áд£¬°üÀ¨¶Ô¶Ë¿ÚºÍÎļþµÄ²Ù×÷ÉÏ£¬¹ýÈ¥£¬ÔÚ´ò
¿ªÒ»¸öI/OͨµÀºó£¬read()½«Ò»Ö±µÈ´ýÔڶ˿ÚÒ»±ß¶ÁÈ¡×Ö½ÚÄÚÈÝ£¬Èç¹ûûÓÐÄÚÈݽøÀ´£¬read()Ò²ÊÇɵɵµÄµÈ£¬Õâ»áÓ°ÏìÎÒÃdzÌÐò¼ÌÐø×öÆäËûÊÂÇ飬ÄÇ
ô¸Ä½ø×ö·¨¾ÍÊÇ¿ªÉèỊ̈߳¬ÈÃÏß³ÌÈ¥µÈ´ý£¬µ«ÊÇÕâÑù×öÒ²ÊÇÏ൱ºÄ·Ñ×ÊÔ´£¨´«Í³socketͨѶ·þÎñÆ÷Éè¼Æģʽ£©
µÄ¡£
Java NIO·Ç¶ÂÈû¼¼Êõʵ¼ÊÊDzÉÈ¡Reactorģʽ£¬»òÕß˵ÊÇObserverģʽΪÎÒÃǼà²ìI/O¶Ë¿Ú£¬Èç¹ûÓÐÄÚÈݽøÀ´£¬»á×Ô¶¯Í¨ÖªÎÒÃÇ£¬ÕâÑù£¬ÎÒÃǾͲ»±Ø¿ªÆô¶à¸öÏß³ÌËÀµÈ£¬´ÓÍâ½ç¿´£¬ÊµÏÖÁËÁ÷³©µÄI/O¶Áд£¬²»¶ÂÈûÁË¡£
Java NIO³öÏÖ²»Ö»ÊÇÒ»¸ö¼¼ÊõÐÔÄܵÄÌá¸ß£¬Äã»á·¢ÏÖÍøÂçÉϵ½´¦ÔÚ½éÉÜËü£¬ÒòΪËü¾ßÓÐÀï³Ì±®ÒâÒ壬´ÓJDK1.4¿ªÊ¼£¬Java¿ªÊ¼Ìá¸ßÐÔÄÜÏà¹ØµÄ¹¦ÄÜ£¬´Ó¶øʹµÃJavaÔڵײã»òÕß²¢Ðзֲ¼Ê½
¼ÆËãµÈ²Ù×÷ÉÏÒѾ¿ÉÒÔºÍC»òPerlµÈÓïÑÔ²¢¼ÝÆëÇý¡£
Èç¹ûÄãÖÁ½ñ»¹ÊÇÔÚ»³ÒÉJavaµÄÐÔÄÜ£¬ËµÃ÷ÄãµÄ˼ÏëºÍ¹ÛÄîÒѾÍêÈ«ÂäÎéÁË£¬JavaÒ»Á½Äê¾ÍÓ¦¸ÃÓÃеÄÃû´ÊÀ´¶¨Òå¡£´ÓJDK1.5¿ªÊ¼ÓÖÒªÌṩ¹ØÓÚÏ̡߳¢²¢·¢µÈÐÂÐÔÄܵÄÖ§³Ö£¬JavaÓ¦ÓÃÔÚÓÎÏ·µÈÊÊʱÁìÓò·½ÃæµÄ»ú»áÒѾ³ÉÊ죬JavaÔÚÎȶ¨×Ô¼ºÖмä¼þ
µØλºó£¬¿ªÊ¼²Ïʳ´«Í³CµÄÁìÓò¡£
±¾ÎÄÖ÷Òª¼òµ¥½éÉÜNIOµÄ»ù±¾ÔÀí£¬
NIOÖ÷ÒªÔÀí
ºÍÊÊÓá£
NIO ÓÐÒ»¸öÖ÷ÒªµÄÀàSelector,Õâ¸öÀàËÆÒ»¸ö¹Û²ìÕß
£¬Ö»ÒªÎÒÃÇ°ÑÐèҪ֪̽µÄ
socketchannel¸æËßSelector,ÎÒÃǽÓ×Å×ö±ðµÄÊÂÇ飬µ±ÓÐʼþ·¢Éúʱ£¬Ëû»á֪ͨÎÒÃÇ£¬´«»ØÒ»×éSelectionKey,ÎÒÃǶÁÈ¡ÕâЩ
Key,¾Í»á»ñµÃÎÒÃǸոÕ×¢²á¹ýµÄsocketchannel,È»ºó£¬ÎÒÃÇ´ÓÕâ¸öChannelÖжÁÈ¡Êý¾Ý£¬·ÅÐÄ£¬°ü×¼Äܹ»¶Áµ½£¬½Ó×ÅÎÒÃÇ¿ÉÒÔ´¦ÀíÕâЩÊý¾Ý¡£
SelectorÄÚ²¿ÔÀíʵ¼ÊÊÇÔÚ×öÒ»¸ö¶ÔËù×¢²áµÄchannelµÄÂÖѯ·ÃÎÊ
£¬²»¶ÏµÄÂÖѯ(Ä¿Ç°¾ÍÕâÒ»¸öËã·¨)£¬Ò»µ©ÂÖѯµ½Ò»¸öchannelÓÐËù×¢²áµÄÊÂÇé·¢Éú£¬±ÈÈçÊý¾ÝÀ´ÁË£¬Ëû¾Í»áÕ¾ÆðÀ´±¨¸æ£¬½»³öÒ»°ÑÔ¿³×£¬ÈÃÎÒÃÇͨ¹ýÕâ°ÑÔ¿³×£¨SelectionKey
±íʾ SelectableChannel
ÔÚ Selector
ÖеÄ×¢²áµÄ±ê¼Ç¡£ £©À´¶ÁÈ¡Õâ¸öchannelµÄÄÚÈÝ¡£
Á˽âÁËÕâ¸ö»ù±¾ÔÀí£¬ÎÒÃǽáºÏ´úÂë¿´¿´Ê¹Óã¬ÔÚʹÓÃÉÏ£¬Ò²ÔÚ·ÖÁ½¸ö·½Ïò£¬Ò»¸öÊÇÏ̴߳¦Àí£¬Ò»¸öÊÇÓ÷ÇỊ̈߳¬ºóÕ߱Ƚϼòµ¥£¬¿´ÏÂÃæ´úÂ룺
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
import java.nio.channels.spi.*;
import java.net.*;
import java.util.*;
/**
*
* @author Administrator
* @version
*/
pub
Ïà¹ØÎĵµ£º
1.FileÀàΪ¹ÜÀíÎļþºÍĿ¼ÌṩÁË·½·¨£¬Æä¶ÔÏó±íʾһ¸öÎļþ»òÕßĿ¼¡£ËüÌṩÁËÈô¸É·½·¨¶ÔÎļþ»òÎļþ¼Ð½øÐвÙ×÷¡£ÆäÖеÄlist()·½·¨ºÍlistFiles()·½·¨¿ÉÒÔÆ𵽶¨Î»Ìض¨ÎļþµÄ×÷Óá£
2.ObjectÀ࣬ÊÇËùÓÐJavaÀàµÄ×æÏÈ£¬ÈôÒ»¸öÀàÉùÃ÷ʱûÓаüº¬extends¹Ø¼ü×Ö£¬ÔòÆäÖ±½Ó¼Ì³ÐÓÚObjetcÀà¡£ÆäÖÐÓÐÐí¶àÖØÒª·½·¨£º
equals(),notify(), ......
µ¥Ì¬¶¨Òå:
SingletonģʽÖ÷Òª×÷ÓÃÊDZ£Ö¤ÔÚJavaÓ¦ÓóÌÐòÖУ¬Ò»¸öÀàClassÖ»ÓÐÒ»¸öʵÀý´æÔÚ¡£
Singletonģʽ¾ÍΪÎÒÃÇÌṩÁËÕâÑùʵÏֵĿÉÄÜ¡£Ê¹ÓÃSingletonµÄºÃ´¦»¹ÔÚÓÚ¿ÉÒÔ½ÚÊ¡Äڴ棬ÒòΪËüÏÞÖÆÁËʵÀýµÄ¸öÊý£¬ÓÐÀûÓÚJavaÀ¬»ø»ØÊÕ£¨garbage col ......
Ò».°¢ÀïÑз¢Ôº-º¼ÖÝ-Java¸ß¼¶³ÌÐòÔ±
ÈËÊý£º1ÈË
ѧÀú£º±¾¿Æ¼°ÒÔÉÏ
¹¤×÷µØµã£ºº¼ÖÝ
ְλÃèÊö:
1¡¢ Éè¼Æ¡¢¿ª·¢¡¢¸Ä½ø»ùÓÚJavaµÄ¹¤¾ßºÍ¿ò¼Ü£»
2¡¢ Ö¸µ¼¿ª·¢ÍŶÓʹÓù¤¾ßºÍ¿ò¼Ü£¬½â¾öÒÉÄÑÎÊÌâ¡£
ְλҪÇó£º
1¡¢ ÊìϤ²¢×ÔÈçÔËÓÃJavaÓïÑÔ¼°JDKÀà¿â£¬¾ß±¸Á¼ºÃµÄ±à³ÌÏ°¹ß£»
2¡¢ ÊìϤ¶àÖÖJava¿ªÔ´ÏîÄ¿£¬¾«Í¨Ä¿Ç°Ö÷Á ......
/***********Ryear.java begin********************/
import java.util.Scanner;
public class Ryear {
/**
* @param args
*/
public static void main(String[] args) {
/**
* ±àд³ÌÐò ......