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

JAVA½ø½×£ºÒ»¸ö¼òµ¥Thread»º³å³ØµÄʵÏÖ


ÔÚÓ¦ÓÃÖУ¬ÎÒÃdz£³£ÐèÒªThread»º³å³ØÀ´×öһЩÊÂÒÔÌá¸ß³ÌÐòµÄЧÂʺͲ¢·¢ÐÔ¡£±¾ÎÄÑÝʾÁËÈçºÎÀûÓÃQueueÕâÖÖÊý¾Ý½á¹¹ÊµÏÖÒ»¸ö¼òµ¥µÄThread»º³å³Ø¡£
Ò»¸öThread»º³å³Ø¿ÉÒÔÉè¼Æ³ÉÒÔÏÂÕâÑù£º»º³å³ØÓɼ¸¸ö¹¤×÷ThreadºÍÒ»¸öQueue×é³É£¬Client¸ºÔð°ÑÈÎÎñ·Åµ½QueueÀïÃæ£¨put·½·¨£©£¬¶ø¹¤×÷Thread¾ÍÒÀ´ÎÈ¡³öÕâЩÈÎÎñ²¢Ö´ÐÐËüÃÇ£¨get·½·¨£©¡£
QueueµÄÒ»¸ö¾­µäʵÏÖÊÇʹÓÃÒ»¸öÑ­»·Êý×飨Õâ¸öʵÏÖÔںܶàÊý¾Ý½á¹¹µÄÊéÉ϶¼ÓнéÉÜ£©£¬ÈçÒ»¸ö´óСΪsizeµÄÊý×飬Õâ¸öÑ­»·Êý×é¿ÉÒÔ±»ÏëÏó³ÉÊ×βÏàÁ¬µÄÒ»¸ö»·¡£oldestÖ¸ÏòQueueÖÐ×îÀϵÄÊý¾ÝËùÔÚµÄλÖã¬nextÖ¸ÏòÏÂÒ»¸ö¿ÉÒÔ·ÅÐÂÊý¾ÝµÄλÖá£
·ÅÈëÒ»¸öÐÂÊý¾Ýµ½nextµÄλÖúó£¬ÐèÒª¸üÐÂnext£ºnext = (next + 1) % size;
´ÓoldestλÖÃÈ¡³öÒ»¸öÊý¾Ýºó£¬ÐèÒª¸üÐÂoldest£ºoldest = (oldest + 1) % size;
µ±oldest == nextµÄʱºò£¬QueueΪ¿Õ£¬
µ±(next + 1) % size == oldestµÄʱºò£¬QueueΪÂú¡£
£¨×¢Ò⣺ΪÁËÇø·ÖQueueΪ¿ÕºÍΪÂúµÄÇé¿ö£¬Êµ¼ÊÉÏQueueÀïÃæ×î¶àÄÜ·Åsize-1¸öÊý¾Ý¡££©
ÒòΪÕâ¸öQueue»áͬʱ±»¶à¸öÏ̷߳ÃÎÊ£¬ÐèÒª¿¼ÂÇÔÚÕâÖÖÇé¿öÏÂQueueÈçºÎ¹¤×÷¡£Ê×ÏÈ£¬QueueÐèÒªÊÇḬ̈߳²È«µÄ£¬¿ÉÒÔÓÃJavaÀïµÄsynchronized¹Ø¼ü×ÖÀ´È·±£Í¬Ê±Ö»ÓÐÒ»¸öThreadÔÚ·ÃÎÊQueue.
ÎÒÃÇ»¹¿ÉÒÔ×¢Òâµ½µ±QueueΪ¿ÕµÄʱºò£¬get²Ù×÷ÊÇÎÞ·¨½øÐе컵±QueueΪÂúµÄʱºò£¬put²Ù×÷ÓÖÊÇÎÞ·¨½øÐеġ£ÔÚ¶àÏ̷߳ÃÎÊÓöµ½ÕâÖÖÇé¿öʱ£¬Ò»°ãÏ£ÍûÖ´ÐвÙ×÷µÄÏ߳̿ÉÒԵȴý£¨block£©Ö±µ½¸Ã²Ù×÷¿ÉÒÔ½øÐÐÏÂÈ¥¡£±ÈÈ磬µ«Ò»¸öThreadÔÚÒ»¸ö¿ÕQueueÉÏÖ´ÐÐget·½·¨µÄʱºò£¬Õâ¸ö ThreadÓ¦µ±µÈ´ý(block)£¬Ö±µ½ÁíÍâµÄThreadÖ´ÐиÃQueueµÄput·½·¨ºó£¬ÔÙ¼ÌÐøÖ´ÐÐÏÂÈ¥¡£ÔÚJavaÀïÃæ£¬Object¶ÔÏóµÄ wait(),notify()·½·¨ÌṩÁËÕâÑùµÄ¹¦ÄÜ¡£
°ÑÉÏÃæµÄÄÚÈݽáºÏÆðÀ´£¬¾ÍÊÇÒ»¸öSyncQueueµÄÀࣺ
public class SyncQueue {
public SyncQueue(int size) {
_array = new Object[size];
_size = size;
_oldest = 0;
_next = 0;
}
public synchronized void put(Object o) {
while (full()) {
try {
wait();
} catch (InterruptedException ex) {
throw new ExceptionAdapter(ex);
}
}
_array[_next] 


Ïà¹ØÎĵµ£º

javaʹÓÃrocksawºÍvserv tcpipʵÏÖ»ùÓÚICMPµÄPing¹¦ÄÜ

Ò»£º×¼±¸ www.savarese.org download
 1.  rocksaw-1.0.0-src.tar.gz
 2.  vserv-tcpip-0.9.2-src.tar.gz
¶þ£º±àÒëÔ´ÎļþµÃµ½jar°ü ʹÓÃAnt
 1.  build vserv-tcpip-0.9.2-src
      ÔÚvserv-tcpip-0.9.2Ŀ¼ÏÂÃæ½¨Ò»¸ötestsĿ¼£¬È»ºóÔÚcmd´°¿ÚϽøÈë ......

½âÎöJavaÀàºÍ¶ÔÏóµÄ³õʼ»¯¹ý³Ì

ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......

java²Ù×÷excelÎļþ

Õâ¸öÊÇ×Ô¼º¹ýȥΪÁË·½±ã²Ù×÷excelÊý¾Ý,дµÄÒ»¸ö¹¤¾ßÀà,ûÓÐÓÅ»¯¹ý,ºÇºÇ
ÉÏÃæµÄÊǹ¤¾ßÀà,ÏÂÃæÌáÓ÷¨,д·¨ºÜ±¿,µ«ÓÃ×Å»¹ºÜ·½±ã
package com.dtb.utils;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Array ......

ÒøÐбÊÊÔÌâ java±ÊÊÔÌâ

ÒøÐбÊÊÔÌâ¼°´ð°¸:java±ÊÊÔÌâ¼°´ð°¸ 
 
1¡¢×÷ÓÃÓòpublic,private,protected,ÒÔ¼°²»Ð´Ê±µÄÇø±ð
  ´ð£º
Çø±ðÈçÏ£º  
×÷ÓÃÓò           µ±Ç°Àà       ͬһpackage     ×ÓËïÀà &n ......

125Ìõ³£¼ûµÄjavaÃæÊÔ±ÊÊÔÌâ´ó»ã×Ü

1.³éÏ󣺡¡³éÏó¾ÍÊǺöÂÔÒ»¸öÖ÷ÌâÖÐÓ뵱ǰĿ±êÎ޹صÄÄÇЩ·½Ã棬ÒÔ±ã¸ü³ä·ÖµØ×¢ÒâÓ뵱ǰĿ±êÓйصķ½Ãæ¡£³éÏó²¢²»´òËãÁ˽âÈ«²¿ÎÊÌ⣬¶øÖ»ÊÇÑ¡ÔñÆäÖеÄÒ»²¿·Ö£¬ÔÝʱ²»Óò¿·Öϸ½Ú¡£³éÏó°üÀ¨Á½¸ö·½Ã棬һÊǹý³Ì³éÏ󣬶þÊÇÊý¾Ý³éÏó¡£  
2.¼Ì³Ð£º
¡¡¼Ì³ÐÊÇÒ»ÖÖÁª½áÀàµÄ²ã´ÎÄ£ÐÍ£¬²¢ÇÒÔÊÐíºÍ¹ÄÀøÀàµÄÖØÓã¬ËüÌṩÁËÒ»Ö ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ