Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

JavaÏß³ÌÖ®Read Write Lock Pattern

Read-Write Lock PatternµÄ²ÎÓëÕߣº
1. Reader£¨¶ÁÈ¡Õߣ©²ÎÓëÕß
    Reader²ÎÓëÕß»á¶ÔSharedResource²ÎÓëÕß½øÐÐread¡£
2. Writer£¨Ð´ÈëÕߣ©²ÎÓëÕß
    Writer²ÎÓëÕß»á¶ÔSharedResource²ÎÓëÕß½øÐÐwrite¡£
3. SharedResource£¨¹²Ïí×ÊÔ´£©²ÎÓëÕß
    SharedResource²ÎÓëÕß´ú±íReaderÓëWriterËù¹²ÏíµÄ×ÊÔ´¡£
    SharedResource²ÎÓëÕß»áÌṩ²»»á¸Ä±äÄÚ²¿×´Ì¬µÄ²Ù×÷£¨read£©ºÍ»á¸Ä±äÄÚ²¿×´Ì¬µÄ²Ù×÷£¨write£©¡£
4. ReadWriteLock£¨¶ÁдÓÃËø¶¨£©²ÎÓëÕß
    ReadWriteLock²ÎÓëÕßÌṩÁ˶ÔSharedResource²ÎÓëÕß½øÐÐread²Ù×÷Óë½øÐÐwrite²Ù×÷ʱÐèÒªµÄËø¶¨¡£
    ΪÁËÍê³Éread²Ù×÷£¬ÌṩÁËreadLockÓëreadUnlock¡£
    ΪÁËÍê³Éwrite²Ù×÷£¬ÌṩÁËwriteLockºÍwriteUnlock¡£
------------------------------
Read-Write Lock PatternÊʺ϶ÁÈ¡±ÈдÈë´ÎÊýƵ·±µÄÇé¿ö¡£
Read-Write Lock PatternÀîÓÀÀÖ¶ÁÈ¡²Ù×÷±Ë´ËÖ®¼ä²»»á³åÍ»µÄÌØÐÔ£¬Ê¹µÃ¶à¸öReader²ÎÓëÕß¿ÉÒÔͬʱ½øÐÐread£¬ÒÔÌáÉý³ÌÐòµÄÐÔÄÜ¡£
²»¹ýµ±Ð´Èë²Ù×÷ƵÂʽϸßʱ£¬Writer²ÎÓëÕ߻ᾭ³£×èÀ¹Reader²ÎÓëÕßµÄread²Ù×÷µÄ½øÐУ¬ÕâÑùÒ²¾ÍÎÞ·¨Õ¹ÏÖRead-Write Lock PatternµÄÓŵãÁË¡£
------------------------------
Ò»¸ö ReadWriteLock²ÎÓëÕßµÄʵÏÖ£º
public final class ReadWriteLock{
private int readingReaders = 0; // ʵ¼ÊÕýÔÚ¶ÁÈ¡µÄÏß³ÌÊý
private int waitingWriters = 0; // ÕýÔڵȴýдÈëµÄÏß³ÌÊý
private int writingWriters = 0; // ʵ¼ÊÕýÔÚдÈëµÄÏß³ÌÊý
private boolean preferWriter = true; // ÊÇ·ñдÈëÓÅÏÈ
public synchronized void readLock() throws InterruptedException{
while(writingWriters >0 ||(preferWriter && waitingWriters >0)){
wait();
}
readingReaders++;
}
public synchronized void readUnlock() throws InterruptedException{
readingReaders--;
notifyAll();
}
public synchronized void writeLock() throws InterruptedException{
waitingWriters++;
try{
while(readingReaders>0||writingWriters>0){
wait();
}
}finally{
waitingWriters--;
}
writingWriters++;
}
public synchronized void writeUnlock() throws InterruptedException{
writingWriters--;
noti


Ïà¹ØÎĵµ£º

JAVA¹Ø¼ü×ÖÏê½â

JAVA¹Ø¼ü×ÖÏê½â
1 finalÊý¾Ý£º
   1>¶ÔÓÚ»ù±¾ÀàÐÍǰ¼ÓÒÔfinalÐÞÊΣ¬±íʾ±»ÐÞÊεıäÁ¿Îª³£Êý£¬²»¿ÉÒÔÐ޸ġ£Ò»¸ö¼ÈÊÇstaticÓÐÊÇfinalµÄ×ֶαíʾֻռ¾ÝÒ»¶Î²»ÄܸıäµÄ´æ´¢¿Õ¼ä¡£
   2>finalÓÃÓÚ¶ÔÏóÓ¦ÓÃʱ£¬finalʹӦÓú㶨²»±ä¡£Ò»µ©ÒýÓñ»³õʼ»¯Ö¸ÏòÒ»¸ö¶ÔÏ󣬾ÍÎÞ·¨ÔÙ°ÑËüÖ¸ÏòÁíÒ»¸ö¶ÔÏó¡£
& ......

Java³£ÓÃ×Ö·û¼¯±àÂëÏê½â

Java³£ÓÃ×Ö·û¼¯±àÂëÏê½â
      Web¿ª·¢µÄʱºò¾­³£»áÓöµ½Ò»Ð©×Ö·û±àÂëµÄ´íÎó£¬ÈçÒ³ÃæÂÒÂëµÈÎÊÌ⣬ËùÒÔÓбØÒªÐè¶Ô×Ö·û±àÂëÓÐËùÁ˽⣬ÒÔÏÂÊÇRickiÊÕ¼¯µÄһЩ×ÊÁÏ£¨¿ÉÄܲ»ÊǺÜÈ«£¬µ«Ï£Íû¶ÔÄãÓÐËù°ïÖú£©
      Java±ê×¼×Ö·û¼¯£ºËùνJava±ê×¼×Ö·û¼¯£¬¾ÍÊÇJavaƽ̨֧³ÖµÄ×Ö·û ......

Java6 ½Å±¾ÒýÇæ(ÓÃJavaµ÷ÓÃJS½Å±¾)µ÷ÓÃjs

Java6 ½Å±¾ÒýÇæ(ÓÃJavaµ÷ÓÃJS½Å±¾)µ÷ÓÃjs
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import javax.script.Invocable;
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
 import javax.script.ScriptException;
 
&n ......

JavaµÄ(PO,VO,TO,BO,DAO,POJO)½âÊÍ

PO(persistant object) ³Ö¾Ã¶ÔÏó
ÔÚ o/rÓ³ÉäµÄʱºò³öÏֵĸÅÄÈç¹ûûÓÐo/rÓ³É䣬ûÓÐÕâ¸ö¸ÅÄî´æÔÚÁË¡£Í¨³£¶ÔÓ¦Êý¾ÝÄ£ÐÍ(Êý¾Ý¿â),±¾Éí»¹Óв¿·ÖÒµÎñÂß¼­µÄ´¦Àí¡£¿ÉÒÔ¿´³ÉÊÇÓëÊý¾Ý¿âÖеıíÏàÓ³ÉäµÄjava¶ÔÏó¡£×î¼òµ¥µÄPO¾ÍÊǶÔÓ¦Êý¾Ý¿âÖÐij¸ö±íÖеÄÒ»Ìõ¼Ç¼£¬¶à¸ö¼Ç¼¿ÉÒÔÓÃPOµÄ¼¯ºÏ¡£POÖÐÓ¦¸Ã²»°üº¬ÈκζÔÊý¾Ý¿âµÄ²Ù×÷¡£
......

javaʵÏֵľ­µäµÝ¹éËã·¨ÈýÀý

javaʵÏֵľ­µäµÝ¹éËã·¨ÈýÀý
Ò»¡¢Ð´×÷´ËÎĵÄÔ­Òò£º
¡¡¡¡Ñ§¹ý³ÌÐòÉè¼ÆµÄÅóÓѶ¼ÖªµÀ£¬´æÔÚ×Ôµ÷ÓõÄËã·¨³Æ×÷µÝ¹éËã·¨¡£ µÝ¹éÍùÍùÄܸøÎÒÃÇ´øÀ´·Ç³£¼ò½à·Ç³£Ö±¹ÛµÄ´úÂëÐÎÊÆ£¬´Ó¶øÊ¹ÎÒÃǵıàÂë´ó´ó¼ò»¯£¬È»¶øµÝ¹éµÄ˼άȷʵºÜÎÒÃǵij£¹æË¼Î¬ÏàÄæµÄ£¬ÎÒÃÇͨ³£¶¼ÊÇ´ÓÉ϶øÏµÄ˼άÎÊÌ⣬ ¶øµÝ¹éÇ÷ÊÆ´ÓÏÂÍùÉϵĽøÐÐ˼ά£¬ÕýÓÉÓÚ´Ë£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ