Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ÀàºÍ¶ÔÏóµÄ³õʼ»¯¹ý³Ì

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

ÓÃJava½Ó¿ÚʵÏֻص÷º¯ÊýµÄµÈ¼Û¹¦ÄÜ

ÓÃJava½Ó¿ÚʵÏֻص÷º¯ÊýµÄµÈ¼Û¹¦ÄÜ
Ê×ÏÈ£¬¿´Ò»Ï»ص÷º¯ÊýµÄ¶¨Òå¼°ÆðÔ´£º
¼ò¶øÑÔÖ®£¬»Øµ÷º¯Êý¾ÍÊÇÒ»¸öͨ¹ýº¯ÊýÖ¸Õëµ÷Óõĺ¯Êý£¬Èç¹ûÄã°Ñº¯ÊýµÄÖ¸Õë(µØÖ·)×÷Ϊ²ÎÊý´«µÝ¸øÁíÒ»¸öº¯Êý£¬µ±Õâ¸öÖ¸Õë±»ÓÃΪµ÷ÓÃËüËùÖ¸ÏòµÄº¯Êýʱ£¬ÎÒÃǾÍ˵Êǻص÷º¯Êý¡£
ΪʲôҪʹÓûص÷º¯Êý£¿
ÒòΪ¿ÉÒ԰ѵ÷ÓÃÕßÓë±»µ÷ÓÃÕß·Ö¿ª¡£µ÷ÓÃÕß²»¹ØÐı» ......

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

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

JAVA²Ù×÷XMLµÄÍêÕûÀý×Ó(²éѯ¡¢Ôö¼Ó¡¢Ð޸ġ¢É¾³ý)

ÕâÊÇÒ»¸öÓÃJAVA W3C DOM ½øÐÐXML²Ù×÷µÄÀý×Ó£¬°üº¬Á˲éѯ¡¢Ôö¼Ó¡¢Ð޸ġ¢É¾³ý¡¢±£´æµÄ»ù±¾²Ù×÷¡£½ÏÍêÕûµÄÃèÊöÁËÒ»¸öXMLµÄÕû¸ö²Ù×÷Á÷³Ì¡£ÊʺϸÕÈëÃÅJAVA XML²Ù×÷µÄÅóÓѲο¼ºÍѧϰ¡£
¼ÙÉèÓÐXMLÎļþ£ºtest1.xml
<?xml version="1.0" encoding="GBK"?>
<books>
<book>
<name>¹þÀﲨÌØ</name> ......

ApplicationºÍJava AppletµÄÇø±ð

JavaÓïÑÔÊÇÒ»ÖÖ°ë±àÒë°ë½âÊ͵ÄÓïÑÔ¡£JavaµÄÓû§³ÌÐò·ÖΪÁ½ÀࣺJava ApplicationºÍJava Applet¡£ÕâÁ½Àà³ÌÐòÔÚ×é³É½á¹¹ºÍÖ´ÐлúÖÆÉ϶¼ÓÐÒ»¶¨µÄ²îÒ죬Ö÷ÒªÌåÏÖÔÚÒÔϼ¸·½Ã棺
£¨1£©ÔËÐз½Ê½²»Í¬¡£Java ApplicationÊÇÍêÕûµÄ³ÌÐò£¬¿ÉÒÔ¶ÀÁ¢ÔËÐУ»Java Applet³ÌÐò²»Äܵ¥¶ÀÔËÐУ¬Ëü±ØÐëǶÈëµ½ÓÃHTMLÓïÑÔ±àдµ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ