javaÏ̳߳ØThreadPoolExecut
JDK1.5ÖеÄÏ̳߳Ø(java.util.concurrent.ThreadPoolExecut
6
ÍÆ¼ö
ÔÚ¶àÏ̴߳óʦDoug LeaµÄ¹±Ï×Ï£¬ÔÚJDK1.5ÖмÓÈëÁËÐí¶à¶Ô²¢·¢ÌØÐÔµÄÖ§³Ö£¬ÀýÈ磺Ï̳߳ء£
Ò»¡¢¼ò½é
Ï̳߳ØÀàΪ java.util.concurrent.ThreadPoolExecutor£¬³£Óù¹Ôì·½·¨Îª£º
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,
long keepAliveTime, TimeUnit unit,
BlockingQueue<Runnable> workQueue,
RejectedExecutionHandler handler)
corePoolSize£º Ï̳߳ØÎ¬»¤Ï̵߳Ä×îÉÙÊýÁ¿
maximumPoolSize£ºÏ̳߳ØÎ¬»¤Ï̵߳Ä×î´óÊýÁ¿
keepAliveTime£º Ï̳߳ØÎ¬»¤Ïß³ÌËùÔÊÐíµÄ¿ÕÏÐʱ¼ä
unit£º Ï̳߳ØÎ¬»¤Ïß³ÌËùÔÊÐíµÄ¿ÕÏÐʱ¼äµÄµ¥Î»
workQueue£º Ï̳߳ØËùʹÓõĻº³å¶ÓÁÐ
handler£º Ï̳߳ضԾܾøÈÎÎñµÄ´¦Àí²ßÂÔ
Ò»¸öÈÎÎñͨ¹ý execute(Runnable)·½·¨±»Ìí¼Óµ½Ï̳߳أ¬ÈÎÎñ¾ÍÊÇÒ»¸ö RunnableÀàÐ͵ĶÔÏó£¬ÈÎÎñµÄÖ´Ðз½·¨¾ÍÊÇ RunnableÀàÐͶÔÏóµÄrun()·½·¨¡£
µ±Ò»¸öÈÎÎñͨ¹ýexecute(Runnable)·½·¨ÓûÌí¼Óµ½Ï̳߳ØÊ±£º
Èç¹û´ËʱÏ̳߳ØÖеÄÊýÁ¿Ð¡ÓÚcorePoolSize£¬¼´Ê¹Ï̳߳ØÖеÄÏ̶߳¼´¦ÓÚ¿ÕÏÐ״̬£¬Ò²Òª´´½¨ÐµÄÏß³ÌÀ´´¦Àí±»Ìí¼ÓµÄÈÎÎñ¡£
Èç¹û´ËʱÏ̳߳ØÖеÄÊýÁ¿µÈÓÚ corePoolSize£¬µ«ÊÇ»º³å¶ÓÁÐ workQueueδÂú£¬ÄÇôÈÎÎñ±»·ÅÈ뻺³å¶ÓÁС£
Èç¹û´ËʱÏ̳߳ØÖеÄÊýÁ¿´óÓÚcorePoolSize£¬»º³å¶ÓÁÐworkQueueÂú£¬²¢ÇÒÏ̳߳ØÖеÄÊýÁ¿Ð¡ÓÚmaximumPoolSize£¬½¨ÐµÄÏß³ÌÀ´´¦Àí±»Ìí¼ÓµÄÈÎÎñ¡£
Èç¹û´ËʱÏ̳߳ØÖеÄÊýÁ¿´óÓÚcorePoolSize£¬»º³å¶ÓÁÐworkQueueÂú£¬²¢ÇÒÏ̳߳ØÖеÄÊýÁ¿µÈÓÚmaximumPoolSize£¬ÄÇôͨ¹ý handlerËùÖ¸¶¨µÄ²ßÂÔÀ´´¦Àí´ËÈÎÎñ¡£
Ò²¾ÍÊÇ£º´¦ÀíÈÎÎñµÄÓÅÏȼ¶Îª£º
ºËÐÄÏß³ÌcorePoolSize¡¢ÈÎÎñ¶ÓÁÐworkQueue¡¢×î´óÏß³ÌmaximumPoolSize£¬Èç¹ûÈýÕß¶¼ÂúÁË£¬Ê¹ÓÃhandler´¦Àí±»¾Ü¾øµÄÈÎÎñ¡£
µ±Ï̳߳ØÖеÄÏß³ÌÊýÁ¿´óÓÚ corePoolSizeʱ£¬Èç¹ûijÏ߳̿ÕÏÐʱ¼ä³¬¹ýkeepAliveTime£¬Ï߳̽«±»ÖÕÖ¹¡£ÕâÑù£¬Ï̳߳ؿÉÒÔ¶¯Ì¬µÄµ÷Õû³ØÖеÄÏß³ÌÊý¡£
unit¿ÉÑ¡µÄ²ÎÊýΪjava.util.concurrent.TimeUnitÖеö¾²Ì¬ÊôÐÔ£º
NANOSECONDS¡¢MICROSECONDS¡¢MILLISECONDS¡¢SECONDS¡£
workQueueÎÒ³£ÓõÄÊÇ£ºjava.util.concurrent.ArrayBlockingQueue
handlerÓÐËĸöÑ¡Ôñ£º
ThreadPoolExecutor.AbortPolicy()
Å׳öjava.util.concurrent.RejectedExecutionExceptionÒì³£
ThreadPoolExecutor.CallerRunsPolicy()
ÖØÊÔÌí¼Óµ±Ç°µÄÈÎÎñ£¬Ëû»á×Ô¶¯Öظ´µ÷ÓÃexecute()·½·¨
ThreadPoolExecuto
Ïà¹ØÎĵµ£º
RMI (Remote Method Invocation£¬Ô¶³Ì·½·¨µ÷ÓÃ)ÈçºÎÓÃÓÚ³ÌÐò¼äͨѶ£¬ÁíÒ»¸öÓÃÓÚͨѶµÄ¼¼ÊõÊÇRuntime.exec() ·½·¨¡£Äã¿ÉÒÔÓÃÕâ¸ö·½·¨´ÓÒ»¸öÔËÐа¢java³ÌÐòÖе÷ÓÃÁíÒ»¸ö³ÌÐò¡£Runtime.exec Ò²ÔÊÐíÄãÖ´ÐкͳÌÐòÏà¹ØµÄ²Ù×÷£¬ÀýÈç¿ØÖÆ³ÌÐòµÄ±ê×¼ÊäÈëÊä³ö£¬µÈ´ý³ÌÐòµÄ½áÊø²¢µÃµ½ËüµÄÍ˳ö״̬¡£ÏÂÃæÊÇÒ»¸ ......
Java, .Net·¢Õ¹·½ÏòºÍǰ¾°
JAVAÓïÑÔ·¢Ã÷ÒÑÓÐ10ÄêÀúÊ·,ÔÚIBM¡¢SUNµÈ¹«Ë¾µÄÍÆ¶¯ÏÂÒѾ±È½ÏÎȶ¨Óë³ÉÊ죬»ñµÃÁË´ó¹æÄ£ÆóÒµµÄÆÕ±éÓ¦Óá£Ê±ÖÁ½ñÈÕ£¬J2EEÒѾ·¢Õ¹³ÉΪһ¸ö¸²¸ÇÃæ¹ã£¬Ð§Âʸߣ¬Ò×ÓÃÐÔÇ¿µÄ¼¼Êõƽ̨£¬ÎüÒýÁË400Íò¿ª·¢Õߣ¬ÔÚÍøÂç¼¼Êõ±é¼°È«ÇòµÄµÄ½ñÌ죬¸üÓÐ17.5ÒŲ́É豸ʹÓÃJAVA¼¼Êõ.ͬʱ, Mustang°æ±¾µÄJ2EEÕýÔÚ½ôÂà ......
ÔÚ Java ³ÌÐòÖÐʹÓöàÏß³ÌÒª±ÈÔÚ C »ò C++ ÖÐÈÝÒ׵ö࣬ÕâÊÇÒòΪ Java ±à³ÌÓïÑÔÌṩÁËÓïÑÔ¼¶µÄÖ§³Ö¡£±¾ÎÄͨ¹ý¼òµ¥µÄ±à³ÌʾÀýÀ´ËµÃ÷ Java ³ÌÐòÖеĶàÏß³ÌÊǶàôֱ¹Û¡£¶ÁÍê±¾ÎÄÒÔºó£¬Óû§Ó¦¸ÃÄܹ»±àд¼òµ¥µÄ¶àÏ̳߳ÌÐò¡£
¡¡¡¡ÎªÊ²Ã´»áÅŶӵȴý?
¡¡¡¡ÏÂÃæµÄÕâ¸ö¼òµ¥µÄ Java ³ÌÐòÍê³ÉËÄÏî²»Ïà¹ØµÄÈÎÎñ¡£ÕâÑùµ ......
¶¨Ê±Æ÷ÀàTimerÔÚjava.util°üÖС£Ê¹ÓÃʱ£¬ÏÈʵÀý»¯£¬È»ºóʹÓÃʵÀýµÄschedule(TimerTask task, long delay)·½·¨£¬É趨ָ¶¨µÄÈÎÎñtaskÔÚÖ¸¶¨µÄÑÓ³ÙdelayºóÖ´ÐС£¶¨Ê±Æ÷ÈÎÎñÀàTimerTaskÊdzéÏóÀ࣬¼Ì³Ð²¢ÖØÐ´Æärun()·½·¨£¬¿ÉʵÏÖ¾ßÌåÈÎÎñ¡£
schedule(TimerTask task, Date time)É趨ָ¶¨ÈÎÎñtaskÔÚÖ¸¶¨Ê±¼ätimeÖ´ÐС£
cancel ......
package tf;
public class TestPack {
public static void main(String [] args)
{
try
{
IAnimal cAnimal = new bird();
cAnimal.shout();
IAnimal animal =(IAnimal)java.lang.Class ......