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

minaÖ®ÐÔÄÜȱÏݼ°bug,java¸ßÐÔÄÜÓÎÏ··þÎñÆ÷ºÎÔÚ?

Apache MINA (mina-2.0.0-M6Ô´ÂëΪÀý):
    ÎÒÃÇʹÓÃmina nio tcp×î³£ÓõÄÑùÀýÈçÏÂ:
        NioSocketAcceptor acceptor = new NioSocketAcceptor(/*NioProcessorPool's size*/);
        DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
        
        //chain.addLast("codec", new ProtocolCodecFilter(
                //new TextLineCodecFactory()));
        ......
        // Bind
        acceptor.setHandler(/*our IoHandler*/);
        acceptor.bind(new InetSocketAddress(port));
------------------------------------------------------------------------------------
    Ê×ÏÈ´ÓNioSocketAcceptor(extends AbstractPollingIoAcceptor)¿ªÊ¼,
bind(SocketAddress)--->bindInternal--->startupAcceptor:Æô¶¯AbstractPollingIoAcceptor.Acceptor.runʹÓÃexecutor[Executor]µÄÏß³Ì,×¢²á[interestOps:SelectionKey.OP_ACCEPT],È»ºówakeup selector.
Ò»µ©ÓÐÁ¬½Ó½øÀ´¾Í¹¹½¨NioSocketSession--¶ÔÓ¦--channal,È»ºósession.getProcessor().add(session)½«µ±Ç°µÄchannal¼ÓÈëµ½NioProcessorµÄselectorÖÐÈ¥[interestOps:SelectionKey.OP_READ],ÕâÑùÿ¸öÁ¬½ÓÖÐÓÐÇëÇó¹ýÀ´¾ÍÓÉÏàÓ¦µÄNioProcessorÀ´´¦Àí.
ÕâÀïÓм¸µãҪ˵Ã÷µÄÊÇ:
1.Ò»¸öNioSocketAcceptor¶ÔÓ¦Á˶à¸öNioProcessor,±ÈÈçNioSocketAcceptor¾ÍʹÓÃÁËSimpleIoProcessorPool DEFAULT_SIZE = Runtime.getRuntime().availableProcessors() + 1.µ±È»Õâ¸ösizeÔÚnew NioSocketAcceptorµÄʱºò¿ÉÒÔÉ趨.
2.Ò»¸öNioSocketAcceptor¶ÔÓ¦Ò»¸öjava nio selector[OP_ACCEPT],Ò»¸öNioProcessorÒ²¶ÔÓ¦Ò»¸öjava nio selector[OP_READ].
3.Ò»¸öNioSocketAcceptor¶ÔÓ¦Ò»¸öÄÚ²¿µÄAbstractPollingIoAcceptor.Acceptor---thread.
4.Ò»¸öNioProcessorÒ²¶ÔÓ¦Ò»¸öÄÚ²¿µÄAbstractPollingIoProcessor.Processor---thread.
5.ÔÚnew NioSocket


Ïà¹ØÎĵµ£º

java²¢·¢±à³Ìʵ¼ù±Ê¼Ç

1, ±£Ö¤Ḭ̈߳²È«µÄÈýÖÖ·½·¨ :
a, ²»Òª¿çÏ̷߳ÃÎʹ²Ïí±äÁ¿
b, ʹ¹²Ïí±äÁ¿ÊÇ finalÀàÐ͵Ä
c, ½«¹²Ïí±äÁ¿µÄ²Ù×÷¼ÓÉÏͬ²½
2, Ò»¿ªÊ¼¾Í½«ÀàÉè¼Æ³ÉḬ̈߳²È«µÄ , ±ÈÔÚºóÆÚÖØÐÂÐÞ¸´Ëü ,¸üÈÝÒ× .
3, ±àд¶àÏ̳߳ÌÐò , Ê×Ïȱ£Ö¤ËüÊÇÕýÈ·µÄ , Æä´ÎÔÙ¿¼ÂÇÐÔÄÜ .
4, ÎÞ״̬»òÖ»¶Á¶ÔÏóÓÀÔ¶ÊÇḬ̈߳²È«µÄ .
5, ²»Òª½«Ò»¸ö¹²Ïí±äÁ¿Âã ......

java Ïß³ÌС½á

1, ΪʲôwaitÓënotify֮ǰ±ØÐëÒª¼Ósynchronized?
´ð°¸ÆäʵºÜ¼òµ¥£¬Ò²ÊÇΪÁË·ÀÖ¹µÈ´ý-֪ͨ»úÖÆ³öÏÖrace condition
Ϊʲô»á³öÏÖrace condition ?
´ð£º ¶ÔÏóÔÚ±»wait֮ǰÒѾ­±»ÁíÒ»Ïß³Ìnotify , Ö®ºóµÄwait »áÓÀ¾ÃÍ£Ö¹,²¢µ¼ÖÂdeadlock(ËÀËø)
ÀíÏëÇé¿ö£º
1, µÚÒ»¸öÏß³ÌÅжϸöÔÏóÊÇ·ñÒªwait
2, µÚÒ»¸öÏ߳̽«¶ÔÏówait
3 ......

java IO²Ù×÷ (¶Áд¡¢×·¼Ó¡¢É¾³ý¡¢Òƶ¯¡¢¸´ÖƵÈ)


Ò»¡¢¶àÖÖ·½Ê½¶ÁÎļþÄÚÈÝ¡£
1¡¢°´×Ö½Ú¶ÁÈ¡ÎļþÄÚÈÝ
2¡¢°´×Ö·û¶ÁÈ¡ÎļþÄÚÈÝ
3¡¢°´ÐжÁÈ¡ÎļþÄÚÈÝ
4¡¢Ëæ»ú¶ÁÈ¡ÎļþÄÚÈÝ
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java ......

javaʵÏÖ×ÊÔ´ÏÂÔØ

/Download   by   HTTP  
//For   other   protocol,   do   it   yourself  
import   java.net.*;  
import   java.io.*;  
public   class   DonwLoa ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ