Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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] 


Ïà¹ØÎĵµ£º

sql 2005 ´æ´¢¹ý³Ì·ÖÒ³ java ´úÂë

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--ÿҳÏÔʾ¼Ç¼ÌõÊý
@currentpage int output,--µÚ¼¸Ò³
@orderid nvarchar(50),--Ö÷¼üÅÅÐò
@sort int,--ÅÅÐò·½Ê½£¬1±íʾÉýÐò£¬0±íʾ½µÐòÅÅÁÐ ......

JAVA³õʼ»¯Ë³Ðò


Java³õʼ»¯Ë³Ðò
ÏÈ¿´Ò»¸öÀý×Ó£º
/**ÀàA**/ 
class TestA {  
    public TestA(String a){  
        System.out.println(a);  
    }  
}  
/**ÀàB**/ 
 class Te ......

JavaÕýÔò±í´ïʽÏê½â

 
×÷ÕߣºÏÉÈËÕÆ¹¤×÷ÊÒ³ö´¦£ºKissJava.comÔðÈα༭£ºÍõÓñº­
 
Èç¹ûÄãÔø¾­ÓùýPerl»òÈÎºÎÆäËûÄÚ½¨ÕýÔò±í´ïʽ֧³ÖµÄÓïÑÔ£¬ÄãÒ»¶¨ÖªµÀÓÃÕýÔò±í´ïʽ´¦ÀíÎı¾ºÍÆ¥ÅäģʽÊǶàô¼òµ¥¡£Èç¹ûÄã²»ÊìϤÕâ¸öÊõÓÄÇô“ÕýÔò±í´ïʽ”£¨Regular Expression£©¾ÍÊÇÒ»¸ö×Ö·û¹¹³ÉµÄ´®£¬Ëü¶¨ÒåÁËÒ»¸öÓÃÀ´ËÑË÷Æ¥Åä×Ö·û´® ......

ÏòÉÏתÐÍ£º¶¯Ì¬°ó¶¨ [Java]

      ²éÁËÐ©ÍøÉϵÄ×ÊÁÏ£¬·¢ÏÖÈç¹û×ÓÀàÏòÉÏתÐÍΪ¸¸À࣬Ôò»áÒÅʧµô¸¸ÀàÖÐûÓж¨ÒåµÄ·½·¨£¬¶ø³ýÁËprivateµÄÊôÐÔÍ⣬ÆäËûµÄÊôÐÔ¶¼»á±»¸¸ÀàµÄÊôÐÔ¸²¸Ç¡£
     <¸¸ÀàÒýÓÃÖ¸Ïò×ÓÀà¶ÔÏó>
     <new¶ÔÏóµÄÄÚ´æÇé¿ö£º¢Ù£ºÎªËùÓеijÉÔ±±äÁ¿·ÖÅäÄÚ´æ¿Õ¼ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ