ÈçºÎÍ£Ö¹javaÏß³Ì
ÈçºÎÍ£Ö¹javaµÄÏß³ÌÒ»Ö±ÊÇÒ»¸öÀ§ÄÕÎÒÃÇ¿ª·¢¶àÏ̳߳ÌÐòµÄÒ»¸öÎÊÌâ¡£Õâ¸öÎÊÌâ×îÖÕÔÚJava5µÄjava.util.concurrentÖеõ½Á˻شð£ºÊ¹ÓÃinterrupt()£¬ÈÃÏß³ÌÔÚrun·½·¨ÖÐÍ£Ö¹¡£ ¼ò½é ÔÚJavaµÄ¶àÏ̱߳à³ÌÖУ¬java.lang.ThreadÀàÐͰüº¬ÁËһЩÁеķ½·¨start(), stop(), stop(Throwable) and suspend(), destroy() and resume()¡£Í¨¹ýÕâЩ·½·¨£¬ÎÒÃÇ¿ÉÒÔ¶ÔÏ߳̽øÐз½±ãµÄ²Ù×÷£¬µ«ÊÇÕâЩ·½·¨ÖУ¬Ö»ÓÐstart()·½·¨µÃµ½Á˱£Áô¡£ ÔÚSun¹«Ë¾µÄһƪÎÄÕ¡¶Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? ¡·ÖÐÏêϸ½²½âÁËÉáÆúÕâЩ·½·¨µÄÔÒò¡£ÄÇô£¬ÎÒÃǾ¿¾¹Ó¦¸ÃÈçºÎÍ£Ö¹Ïß³ÌÄØ£¿ ½¨ÒéʹÓõķ½·¨ ÔÚ¡¶Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? ¡·ÖУ¬½¨ÒéʹÓÃÈçÏµķ½·¨À´Í£Ö¹Ị̈߳º private volatile Thread blinker;
public void stop() {
blinker = null;
}
public void run() {
Thread thisThread = Thread.currentThread();
while (blinker == thisThread) {
try {
thisThread.sleep(interval);
} catch (InterruptedException e){
}
repaint();
}
} ¹ØÓÚʹÓÃvolatile¹Ø¼ü×ÖµÄÔÒò£¬Çë²é¿´http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#36930¡£ µ±Ï̴߳¦ÓÚ·ÇÔËÐУ¨Run£©×´Ì¬ µ±Ï̴߳¦ÓÚÏÂÃæµÄ×´¿öʱ£¬ÊôÓÚ·ÇÔËÐÐ״̬£º µ±sleep·½·¨±»µ÷Óᣠµ±wait·½·¨±»µ÷Óᣠµ±±»I/O×èÈû£¬¿ÉÄÜÊÇÎļþ»òÕßÍøÂçµÈµÈ¡£ µ±Ï̴߳¦ÓÚÉÏÊöµÄ״̬ʱ£¬Ê¹ÓÃÇ°Ãæ½éÉܵķ½·¨¾Í²»¿ÉÓÃÁË¡£Õâ¸öʱºò£¬ÎÒÃÇ¿ÉÒÔ
Ïà¹ØÎĵµ£º
Thread-Per-Message PatternµÄ²ÎÓëÕߣº
1. Client£¨Î¯ÍÐÈË£©²ÎÓëÕß
Client²ÎÓëÕß»á¶ÔHost²ÎÓëÕß·¢³öÇëÇó¡£Client²ÎÓëÕß²¢²»ÖªµÀHost²ÎÓëÕß»áÈçºÎʵÏÖÕâ¸öÇëÇó¡£
2. Host²ÎÓëÕß
µ±Host²ÎÓëÕß½ÓÊÕµ½Client²ÎÓëÕßµÄÇëÇóʱ£¬»á½¨Á¢ÐµÄÏ̲߳¢Æô¶¯Ëü¡£
Õâ¸öеÄÏ ......
1.³éÏó£º
¡¡¡¡³éÏó¾ÍÊǺöÂÔÒ»¸öÖ÷ÌâÖÐÓ뵱ǰĿ±êÎ޹صÄÄÇЩ·½Ã棬ÒÔ±ã¸ü³ä·ÖµØ×¢ÒâÓ뵱ǰĿ±êÓйصķ½Ãæ¡£³éÏó²¢²»´òËãÁ˽âÈ«²¿ÎÊÌ⣬¶øÖ»ÊÇÑ¡ÔñÆäÖеÄÒ»²¿·Ö£¬ÔÝʱ²»Óò¿·Öϸ½Ú¡£³éÏó°üÀ¨Á½¸ö·½Ã棬һÊǹý³Ì³éÏ󣬶þÊÇÊý¾Ý³éÏó¡£
2.¼Ì³Ð£º
¡¡¡¡¼Ì³ÐÊÇÒ»ÖÖÁª½áÀàµÄ²ã´ÎÄ£ÐÍ£¬²¢ÇÒÔÊÐíºÍ¹ÄÀøÀàµÄÖØÓã¬ËüÌṩÁËÒ»ÖÖÃ÷È· ......
×î½ü³õ²½½Ó´¥ÁËÏÂJava¼ÓÃܺÍÊý×ÖÇ©ÃûµÄÏà¹ØÄÚÈÝ£¬ÎÒѧϰµÄ¹ý³Ì´ó¸Å·ÖÎå²½£º
1£©ÏûÏ¢ÕªÒª
2£©Ë½Ô¿¼ÓÃÜ
3£©¹«Ô¿¼ÓÃÜ
4£©Êý×ÖÇ©Ãû
5£©Êý×ÖÖ¤Êé
ÎÒ¸öÈËÈÏΪѧϰ±à³Ì×î¿ìµÄ·½·¨¾ÍÊÇʵ¼Ê½áºÏÀíÂÛ(¼´ÏÈʵ¼ÊÔÚÀíÂÛ)´úÂë×Ô¼ºÅÜÅÜ¿´£¬µ÷Ò»µ÷£¬·¢ÏÖÎÊÌâ»òÆæ¹ÖµÄµØ·½ÔÚÈ¥ÕÒÏà¹Ø×ÊÁϲé²é¡£±È´ÓÍ·µ½Î²¿´Ò»¶ÑÀíÂÛÈ»ºóÔÙÀíÂ۽Ạ......
import java.util.concurrent.Semaphore;
/**
* ³éÏóÈÎÎñ£¬¾ßÌåµÄÖ´ÐÐÈÎÎñ£¬¹éʵÏÖÀฺÔð
*
* @author Administrator
*
*/
public abstract class Task {
public abstract void run();
private Semaphore s;
private boolean hasExisted = false;
public void P(final Semaphore s) throws Interrupt ......
JavaÖеĴúÀí¼¼Êõ
ÒÔǰ·¢¹ýÒ»±éblog½²µ½ÁË´úÀí¼¼Êõ£¬·¢ÏÖÀí½âÓÐЩ´íÎó£¬×î½üÓÐÓÖÁËЩеÄÀí½â£¬×ܽáÒ»ÏÂ
´úÀí¼¼Êõ¿ÉÒÔ·ÖΪstatic proxyºÍdynamic proxy£¬Á½ÖÖ´úÀí¼¼ÊõÓÃ;Ҳ²»Í¬
static proxy ÓõĽÏÉÙ£¬ÒòΪÿ´úÀíÒ»¸ö¶ÔÏ󣬶¼ÐèÒª´´½¨Ò»¸ö´úÀíÀ࣬ÏÔÈ»²»ÊÇÎÒÃÇËùÆÚÍûµÄ
dynamic proxyÔòÓõıȽϹ㷺£¬ÒòΪ²»ÐèÒªÉú³É´ ......