ʹÓÃJava NIO±àд¸ßÐÔÄܵķþÎñÆ÷
×ªÔØµØÖ·£ºhttp://www.javaeye.com/topic/40489
´ÓJDK 1.4¿ªÊ¼£¬JavaµÄ±ê×¼¿âÖоͰüº¬ÁËNIO£¬¼´ËùνµÄ“New IO”¡£ÆäÖÐ×îÖØÒªµÄ¹¦ÄܾÍÊÇÌṩÁË“·Ç×èÈû”µÄIO£¬µ±È»°üÀ¨ÁËSocket¡£NonBlockingµÄIO¾ÍÊǶÔselect(Unixƽ̨ÏÂ)ÒÔ¼° WaitForMultipleObjects(Windowsƽ̨)µÄ·â×°£¬ÌṩÁ˸ßÐÔÄÜ¡¢Ò×ÉìËõµÄ·þÎñ¼Ü¹¹¡£
˵À´²ÑÀ¢£¬Ö±µ½JDK1.4²ÅÓÐÕâÖÖ¹¦ÄÜ£¬µ«³Ùµ½Õß²»Ò»¶¨Ã»ÓÐó¦Ð·³Ô£¬NIO¾ÍÌṩÁËÓÅÐãµÄÃæÏò¶ÔÏóµÄ½â¾ö·½°¸£¬¿ÉÒԺܷ½±ãµØ±àд¸ßÐÔÄܵķþÎñÆ÷¡£
»°Ëµ»ØÀ´£¬´«Í³µÄServer/ClientʵÏÖÊÇ»ùÓÚThread per request£¬¼´·þÎñÆ÷Ϊÿ¸ö¿Í»§¶ËÇëÇó½¨Á¢Ò»¸öÏ̴߳¦Àí£¬µ¥¶À¸ºÔð´¦ÀíÒ»¸ö¿Í»§µÄÇëÇó¡£±ÈÈçÏñTomcat£¨Ð°汾Ҳ»áÌṩNIO·½°¸£©¡¢ResinµÈWeb·þÎñÆ÷¾ÍÊÇÕâÑùʵÏֵġ£µ±È»ÎªÁ˼õÉÙ˲¼ä·åÖµÎÊÌ⣬·þÎñÆ÷Ò»°ã¶¼Ê¹ÓÃÏ̳߳أ¬¹æ¶¨ÁËͬʱ²¢·¢µÄ×î´óÊýÁ¿£¬±ÜÃâÁËÏ̵߳ÄÎÞÏÞÔö³¤¡£
µ«ÕâÑùÓÐÒ»¸öÎÊÌ⣺Èç¹ûÏ̳߳صĴóСΪ100£¬µ±ÓÐ100¸öÓû§Í¬Ê±Í¨¹ýHTTPÏÖÔÚÒ»¸ö´óÎļþʱ£¬·þÎñÆ÷µÄÏ̳߳ػáÓÃÍ꣬ÒòΪËùÓеÄÏ̶߳¼ÔÚ´«Êä´óÎļþÁË£¬¼´Ê¹µÚ101¸öÇëÇóÕß½ö½öÇëÇóÒ»¸öÖ»ÓÐ10×Ö½ÚµÄÒ³Ãæ£¬·þÎñÆ÷Ò²ÎÞ·¨ÏìÓ¦ÁË£¬Ö»Óеȵ½Ï̳߳ØÖÐÓпÕÏеÄÏ̳߳öÏÖ¡£
ÁíÍ⣬Ï̵߳ĿªÏúÒ²ÊǺܴóµÄ£¬ÌرðÊÇ´ïµ½ÁËÒ»¸öÁÙ½çÖµºó£¬ÐÔÄÜ»áÏÔÖøÏ½µ£¬ÕâÒ²ÏÞÖÆÁË´«Í³µÄSocket·½°¸ÎÞ·¨Ó¦¶Ô²¢·¢Á¿´óµÄ³¡ºÏ£¬¶ø“·Ç×èÈû”µÄIO¾ÍÄÜÇáËɽâ¾öÕâ¸öÎÊÌâ¡£
ÏÂÃæÖ»ÊÇÒ»¸ö¼òµ¥µÄÀý×Ó£º·þÎñÆ÷ÌṩÁËÏÂÔØ´óÐÍÎļþµÄ¹¦ÄÜ£¬¿Í»§¶ËÁ¬½ÓÉÏ·þÎñÆ÷µÄ12345¶Ë¿Úºó£¬¾Í¿ÉÒÔ¶ÁÈ¡·þÎñÆ÷·¢Ë͵ÄÎļþÄÚÈÝÐÅÏ¢ÁË¡£×¢ÒâÕâÀïµÄ·þÎñÆ÷Ö»ÓÐÒ»¸öÖ÷Ị̈߳¬Ã»ÓÐÆäËûÈκÎÅÉÉúỊ̈߳¬ÈÃÎÒÃÇ¿´¿´NIOÊÇÈçºÎÓÃÒ»¸öÏ̴߳¦ÀíN¸öÇëÇóµÄ¡£
NIO·þÎñÆ÷×îºËÐĵÄÒ»µã¾ÍÊÇ·´Ó¦Æ÷ģʽ£ºµ±ÓиÐÐËȤµÄʼþ·¢ÉúµÄ£¬¾Í֪ͨ¶ÔÓ¦µÄʼþ´¦ÀíÆ÷È¥´¦ÀíÕâ¸öʼþ£¬Èç¹ûûÓУ¬Ôò²»´¦Àí¡£ËùÒÔʹÓÃÒ»¸öÏß³Ì×öÂÖѯ¾Í¿ÉÒÔÁË¡£µ±È»ÕâÀïÕâÊǸöÀý×Ó£¬Èç¹ûÒª»ñµÃ¸ü¸ßÐÔÄÜ£¬¿ÉÒÔʹÓÃÉÙÁ¿µÄỊ̈߳¬Ò»¸ö¸ºÔð½ÓÊÕÇëÇ󣬯äËûµÄ¸ºÔð´¦ÀíÇëÇó£¬ÌرðÊǶÔÓÚ¶àCPUʱЧÂÊ»á¸ü¸ß¡£
¹ØÓÚʹÓÃNIO¹ý³ÌÖгöÏÖµÄÎÊÌ⣬×îΪÆÕ±éµÄ¾ÍÊÇΪʲôûÓÐÇëÇóʱCPUµÄÕ¼ÓÃÂÊΪ100%£¿³öÏÖÕâÖÖÎÊÌâµÄÖ÷ÒªÔÒòÊÇ×¢²áÁ˲»¸ÐÐËȤµÄʼþ£¬±ÈÈçÈç¹ûûÓÐÊý¾ÝÒª·¢µ½¿Í»§¶Ë£¬¶øÓÖ×¢²áÁËдʼþ£¨OP_WRITE£©£¬ÔòÔÚ Selector.select()ÉϾͻáʼÖÕÓÐʼþ³öÏÖ£¬CPU¾ÍÒ»Ö±´¦ÀíÁË£¬¶ø´Ëʱselect()Ó¦¸ÃÊÇ×èÈûµÄ¡£
ÁíÍâÒ»¸öÖµµÃ×¢ÒâµÄÎÊÌâÊÇ£ºÓÉÓÚֻʹÓÃÁËÒ»¸öỊ̈߳¨¶à¸öÏß³ÌÒ²Èç´Ë£©´¦À
Ïà¹ØÎĵµ£º
Ôڳɹ¦ÊµÏÖJavaµ÷ÓÃC++Ö®ºó£¬½ÓÏÂÀ´Ïëµ½ÄÜ·ñͨ¹ýJNAʵÏÖJavaµ÷ÓÃFortran£¬½ñÌìÊÔÑéÁËһϣ¬»¹ÊDZȽÏÈÝÒ׵ġ£
ÍøÉÏÓÐÒ»¸öJavaµ÷ÓÃF95µÄÀý×Ó£¬µ«ÊÇÎÒ¿¼ÂDz»½öҪʵÏÖF95µÄµ÷Ó㬻¹ÒªÊµÏÖF77µÄµ÷Óã¬ËùÒÔ·ÑÁËһЩÖÜÕÛ¡£
ÎÊÌâµÄ¹Ø¼üÔÚÓÚF77Ϊ¹ý³ÌÃû×Ô¶¯Ìí¼ÓÁËÒ»¸öβ²¿µÄÏ»®Ïߣ¬ËùÒÔsub1Õâ¸ö¹ý³Ì£¬µ½JavaÒ»¶Ë£¬¾Í±ä³ÉÁËsub1_£¬ ......
public void sort(int[] array) {
for(int i=0; i<array.length; i++) {
boolean flag = true;
for(int j=0; j<array.length-i-1; j++) {
if(array[j]>array[j+1]) {
int tmp = ar ......
JDK1.5ÖУ¬StringÀàÐÂÔöÁËÒ»¸öºÜÓÐÓõľ²Ì¬·½·¨String.format():
format(Locale l, String format, Object... args) ʹÓÃÖ¸¶¨µÄÓïÑÔ»·¾³¡¢¸ñʽ×Ö·û´®ºÍ²ÎÊý·µ»ØÒ»¸ö¸ñʽ»¯×Ö·û´®¡£
format(String format, Object... args) ʹÓÃÖ¸¶¨µÄ¸ñʽ×Ö·û´®ºÍ²ÎÊý·µ»ØÒ»¸ö¸ñʽ»¯×Ö·û´®¡£
¾Ù¼¸¸öÕâ¸ö·½·¨ÊµÓõÄÀý×Ó(×¢ÊÍÊÇÊä³ö½á¹û)£º ......
Ìæ»»×Ö½ÚÊý×éÁ÷ºÍ¹ÜµÀÁ÷
ÎĵµÑ¡Ïî
<tr
valign="top"><td width="8"><img alt="" height="1" width="8"
src="//www.ibm.com/i/c.gif"/></td><td width="16"><img alt="" width="16"
he ......
typedef struct
{
BYTE baOrigMDN[8]; /* Ö÷½ÐÓû§MDN */
BYTE baDestMDN[8]; /* ±»½ÐÓû§MDN */
BYTE bOrigIsVIP;   ......