Java Concurrent°üѧϰ֮BlockingQueue
	
    
    
	BlockingQueueÊÇÒ»¸ö½Ó¿Ú£¬Ëü´ÓQueue¼Ì³Ð¶øÀ´£¬
°üº¬ÁËQueueµÄËùÓй¦ÄÜ£¬²¢ÔÚQueueµÄ»ù´¡ÉÏÌṩÁË2¸öÐµĹ¦ÄÜ£º
    1. ¼ìË÷ÔªËØÊ±µÈ´ý¶ÓÁбäΪ·Ç¿Õ
    2. ´æ´¢ÔªËØÊ±µÈ´ý¿Õ¼ä±äµÃ¿ÉÓá£
 
ÏÂÃæ³Â¼Ò»Ð©JDKÎĵµÖйØÓÚBlockingQueueµÄ½éÉÜ£º
BlockingQueue ¿ÉÒÔÊÇÏÞ¶¨ÈÝÁ¿µÄ¡£ËüÔÚÈÎÒâ¸ø¶¨Ê±¼ä¶¼¿ÉÒÔÓÐÒ»¸ö remainingCapacity£¬³¬³ö´ËÈÝÁ¿£¬±ãÎÞ·¨ÎÞ×èÈûµØ put ¶îÍâµÄÔªËØ¡£Ã»ÓÐÈκÎÄÚ²¿ÈÝÁ¿Ô¼ÊøµÄ BlockingQueue ×ÜÊDZ¨¸æ Integer.MAX_VALUE µÄÊ£ÓàÈÝÁ¿¡£ 
BlockingQueue ʵÏÖÖ÷ÒªÓÃÓÚÉú²úÕß-ʹÓÃÕß¶ÓÁУ¬µ«ËüÁíÍ⻹֧³Ö Collection ½Ó¿Ú¡£Òò´Ë£¬¾ÙÀýÀ´Ëµ£¬Ê¹Óà remove(x) ´Ó¶ÓÁÐÖÐÒÆ³ýÈÎÒâÒ»¸öÔªËØÊÇÓпÉÄܵġ£È»¶ø£¬ÕâÖÖ²Ù×÷ͨ³£²» »áÓÐЧִÐУ¬Ö»ÄÜÓмƻ®µØÅ¼¶ûʹÓ㬱ÈÈçÔÚÈ¡ÏûÅŶÓÐÅϢʱ¡£ 
BlockingQueue ʵÏÖÊÇḬ̈߳²È«µÄ¡£ËùÓÐÅŶӷ½·¨¶¼¿ÉÒÔʹÓÃÄÚ²¿Ëø¶¨»òÆäËûÐÎʽµÄ²¢·¢¿ØÖÆÀ´×Ô¶¯´ïµ½ËüÃǵÄÄ¿µÄ¡£È»¶ø£¬´óÁ¿µÄ Collection ²Ù×÷£¨addAll¡¢containsAll¡¢retainAll ºÍ removeAll£©Ã»ÓÐ ±ØÒª×Ô¶¯Ö´ÐУ¬³ý·ÇÔÚʵÏÖÖÐÌØ±ð˵Ã÷¡£Òò´Ë£¬¾ÙÀýÀ´Ëµ£¬ÔÚÖ»Ìí¼ÓÁË c ÖеÄÒ»Ð©ÔªËØºó£¬addAll(c) ÓпÉÄÜʧ°Ü£¨Å׳öÒ»¸öÒì³££©¡£ 
BlockingQueue ʵÖÊÉϲ» Ö§³ÖʹÓÃÈκÎÒ»ÖÖ“close”»ò“shutdown”²Ù×÷À´Ö¸Ê¾²»ÔÙÌí¼ÓÈκÎÏî¡£ÕâÖÖ¹¦ÄܵÄÐèÇóºÍʹÓÃÓÐÒÀÀµÓÚʵÏÖµÄÇãÏò¡£ÀýÈ磬һÖÖ³£ÓõIJßÂÔÊÇ£º¶ÔÓÚÉú²úÕߣ¬²åÈëÌØÊâµÄ end-of-stream »ò poison ¶ÔÏ󣬲¢¸ù¾ÝʹÓÃÕß»ñÈ¡ÕâЩ¶ÔÏóµÄʱ¼äÀ´¶ÔËüÃǽøÐнâÊÍ¡£ 
ÔÚJDK1.5ÖÐÌṩÁËBlockingQueueµÄÈçÏÂʵÏÖÀࣺ
1. ArrayBlockingQueue
2. LinkedBlockingQueue
3. PriorityBlockingQueue
4. SynchronousQueue
5. DelayQueue
ÏÂÃæÎÒÃÇÀ´Ò»Ò»½éÉÜÕâЩBolackingQueueʵÏÖµÄÌØµã£º
1. ArrayBlockingQueue
¹ÊÃû˼Ò⣬ArrayBlockingQueueÊÇÒ»¸öÓÉÊý×éÖ§³ÖµÄÓнç×èÈû¶ÓÁС£´Ë¶ÓÁа´ FIFO£¨ÏȽøÏȳö£©ÔÔò¶ÔÔªËØ½øÐÐÅÅÐò¡£¶ÓÁеÄÍ·²¿ ÊÇÔÚ¶ÓÁÐÖдæÔÚʱ¼ä×µÄÔªËØ¡£¶ÓÁеÄβ²¿ ÊÇÔÚ¶ÓÁÐÖдæÔÚʱ¼ä×î¶ÌµÄÔªËØ¡£ÐÂÔªËØ²åÈëµ½¶ÓÁеÄβ²¿£¬¶ÓÁмìË÷²Ù×÷ÔòÊÇ´Ó¶ÓÁÐÍ·²¿¿ªÊ¼»ñµÃÔªËØ¡£ 
ÕâÊÇÒ»¸öµäÐ͵ēÓн绺´æÇø”£¬¹Ì¶¨´óСµÄÊý×éÔÚÆäÖб£³ÖÉú²úÕß²åÈëµÄÔªËØºÍʹÓÃÕßÌáÈ¡µÄÔªËØ¡£Ò»µ©´´½¨ÁËÕâÑùµÄ»º´æÇø£¬¾Í²»ÄÜÔÙÔö¼ÓÆäÈÝÁ¿¡£ÊÔͼÏòÒÑÂú¶ÓÁÐÖзÅÈëÔªËØ»áµ¼Ö·ÅÈë²Ù×÷ÊÜ×èÈû£»ÊÔͼ´Ó¿Õ¶ÓÁÐÖмìË÷ÔªËØ½«µ¼ÖÂÀàËÆ×èÈû¡£ 
´ËÀàÖ§³Ö¶ÔµÈ´ýµ
    
     
	
	
    
    
	Ïà¹ØÎĵµ£º
        
    
    ¸ö ÈË ¼ò Àú
ÐÕ    Ãû£º
ÍõÖ¾¹ú
ÐÔ    ±ð£º
ÄÐ
Äê    Á䣺
23Ëê
ÁªÏµµç»°£º
13124799190
ר    Òµ£º
¼ÆËã»ú¼¼Êõ
¹¤×÷ʱ¼ä£º
Ò»ÄêÒÔÉÏ
ѧ    Àú£º
´óר
ÓÊ    Ï䣺
andy478168@yeah.net
¡ï ÇóÖ°ÒâÏò
¹¤×÷ÐÔÖÊ ......
	
    
        
    
    1.Duplicated Code 
 
´úÂëÖØ¸´¼¸ºõÊÇ×î³£¼ûµÄÒìζÁË¡£ËûÒ²ÊÇRefactoringµÄÖ÷ҪĿ±êÖ®Ò»¡£´úÂëÖØ¸´ÍùÍùÀ´×ÔÓÚcopy-and-pasteµÄ±à³Ì·ç¸ñ¡£ÓëËûÏà¶ÔÓ¦OAOOÊÇÒ»¸öºÃϵͳµÄÖØÒª±êÖ¾¡£ 
 
2.Long method 
 
ËüÊÇ´«Í³½á¹¹»¯µÄ“ÒŶ¾”¡£Ò»¸ö·½·¨Ó¦µ±¾ßÓÐ×ÔÎÒ¶ÀÁ¢µÄÒâͼ£¬²»Òª°Ñ¼¸¸öÒâͼ·ÅÔÚÒ»Æð¡£ ......
	
    
        
    
    °ücommons-net-1.4.1.zip
import org.apache.commons.io.IOUtils; 
import org.apache.commons.net.ftp.FTPClient; 
import com.eduvideotv.util.Global;
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.FileOutputStream; 
/** 
* Apache commons-net ÊÔÓ ......
	
    
        
    
    ÎÒÃǶ¼ÖªµÀjava¡¢c#¡¢vbµÈÓïÑÔ¶¼ÓÐsleepÔÝÍ£µÄº¯Êý£¬¶øJavaScript½Å±¾Ã»ÓÐÀàËÆµÄ¹¦ÄÜ¡£
ÏÂÃæ¾ÍÊÇÎÒµÄʵÏֵķ½·¨£º
<mce:script type="text/javascript"><!--
function test()
{
  var s="javascript--ÔÝÍ£º¯Êý";
  setTimeout(
  function(){
   eval(sleep(test));   //Ö´ÐÐreturnÖ®ºóµÄ´úÂ룬Ҳ¾ÍÊÇ&ldq ......
	
    
        
    
    public static void  main(string[]  args)
{
     int[] arrayInt=new int[] {1,2,3,4,5}
     ArrayList  alist =ArrayList();
    //·½·¨Ò»
    foreach(int i in alist)
    {
 &nbs ......