JavaỊ̈߳ºÐÂÌØÕ÷ Ëø£¨Ï£©
JavaỊ̈߳ºÐÂÌØÕ÷-Ëø£¨Ï£©
ÔÚÉÏÎÄÖÐÌáµ½ÁËLock½Ó¿ÚÒÔ¼°¶ÔÏó£¬Ê¹ÓÃËü£¬ºÜÓÅÑŵĿØÖÆÁ˾ºÕù×ÊÔ´µÄ°²È«·ÃÎÊ£¬µ«ÊÇÕâÖÖËø²»Çø·Ö¶Áд£¬³ÆÕâÖÖËøÎªÆÕÍ¨Ëø¡£ÎªÁËÌá¸ßÐÔÄÜ£¬JavaÌṩÁ˶ÁÐ´Ëø£¬ÔÚ¶ÁµÄµØ·½Ê¹ÓöÁËø£¬ÔÚдµÄµØ·½Ê¹ÓÃÐ´Ëø£¬Áé»î¿ØÖÆ£¬ÔÚÒ»¶¨³Ì¶ÈÉÏÌá¸ßÁ˳ÌÐòµÄÖ´ÐÐЧÂÊ¡£
JavaÖжÁÐ´ËøÓиö½Ó¿Újava.util.concurrent.locks.ReadWriteLock£¬Ò²ÓоßÌåµÄʵÏÖReentrantReadWriteLock£¬ÏêϸµÄAPI¿ÉÒԲ鿴JavaAPIÎĵµ¡£
ÏÂÃæÕâ¸öÀý×ÓÊÇÔÚÎÄÀý×ӵĻù´¡ÉÏ£¬½«ÆÕÍ¨Ëø¸ÄΪ¶ÁÐ´Ëø£¬²¢Ìí¼ÓÕË»§Óà¶î²éѯµÄ¹¦ÄÜ£¬´úÂëÈçÏ£º
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
* JavaỊ̈߳ºËø
*
* @author leizhimin 2009-11-5 10:57:29
*/
public class Test {
public static void main(String[] args) {
//´´½¨²¢·¢·ÃÎʵÄÕË»§
MyCount myCount = new MyCount("95599200901215522", 10000);
//´´½¨Ò»¸öËø¶ÔÏó
ReadWriteLock lock = new ReentrantReadWriteLock(false);
//´´½¨Ò»¸öÏ̳߳Ø
ExecutorService pool = Executors.newFixedThreadPool(2);
//´´½¨Ò»Ð©²¢·¢·ÃÎÊÓû§£¬Ò»¸öÐÅÓÿ¨£¬´æµÄ´æ£¬È¡µÄÈ¡£¬ºÃÈÈÄÖ°¡
User u1 = new User("ÕÅÈý", myCou
Ïà¹ØÎĵµ£º
´ò¿ªeclipse£¬·¢ÏÖeclipseå´µôÁË£¬²¢ÇÒ³öÏÖÕâÑùµÄÌáʾ£º¹ØÓÚInitializing java tooling£¨1%£©...
ÖØÆôÁ˼¸´ÎÖ®ºó·¢ÏÖÎÊÌâÈÔÈ»´æÔÚ£¬Òò¶ø¿ñËÑÁËÒ»°Ñ£¬ÖÕÓÚÕÒµ½ÕýÈ·µÄ½â¾ö°ì·¨£¬ÈçÏ£º
ÕÒµ½eclipseĿ¼£¬±à¼eclipse.iniÎļþ£¬ÔÚ-vmargs²ÎÊý֮ǰÌí¼ÓÉÏÈçϲÎÊý£¨Ò»¶¨ÒªÏñÏÂÃæÕâÑùд³ÉÁ½ÐУ©£¬È»ºóÖØÆô¾ÍokÁË
-vm
C:\Progr ......
JavaỊ̈߳ºÏ̵߳Äͬ²½ÓëËø
Ò»¡¢Í¬²½ÎÊÌâÌá³ö
Ï̵߳Äͬ²½ÊÇΪÁË·ÀÖ¹¶à¸öÏ̷߳ÃÎÊÒ»¸öÊý¾Ý¶ÔÏóʱ£¬¶ÔÊý¾ÝÔì³ÉµÄÆÆ»µ¡£
ÀýÈ磺Á½¸öÏß³ÌThreadA¡¢ThreadB¶¼²Ù×÷ͬһ¸ö¶ÔÏóFoo¶ÔÏ󣬲¢ÐÞ¸ÄFoo¶ÔÏóÉϵÄÊý¾Ý¡£
public class Foo {
private int x = 100;
......
JavaỊ̈߳ºÏ̵߳ĵ÷¶È-ÐÝÃß
JavaÏ̵߳÷¶ÈÊÇJava¶àÏ̵߳ĺËÐÄ£¬Ö»ÓÐÁ¼ºÃµÄµ÷¶È£¬²ÅÄܳä·Ö·¢»ÓϵͳµÄÐÔÄÜ£¬Ìá¸ß³ÌÐòµÄÖ´ÐÐЧÂÊ¡£
ÕâÀïÒªÃ÷È·µÄÒ»µã£¬²»¹Ü³ÌÐòÔ±Ôõô±àдµ÷¶È£¬Ö»ÄÜ×î´óÏ޶ȵÄÓ°ÏìÏß³ÌÖ´ÐеĴÎÐò£¬¶ø²»ÄÜ×öµ½¾«×¼¿ØÖÆ¡£
Ïß³ÌÐÝÃßµÄÄ¿µÄÊÇʹÏß³ÌÈóöCPUµÄ×î¼òµ¥µÄ×ö·¨Ö®Ò»£¬Ïß³ÌÐÝÃß ......
JavaỊ̈߳ºÏ̵߳ĵ÷¶È-ÓÅÏȼ¶
ÓëÏß³ÌÐÝÃßÀàËÆ£¬Ï̵߳ÄÓÅÏȼ¶ÈÔÈ»ÎÞ·¨±£ÕÏÏ̵߳ÄÖ´ÐдÎÐò¡£Ö»²»¹ý£¬ÓÅÏȼ¶¸ßµÄÏ̻߳ñÈ¡CPU×ÊÔ´µÄ¸ÅÂʽϴó£¬ÓÅÏȼ¶µÍµÄ²¢·Çû»ú»áÖ´ÐС£
Ï̵߳ÄÓÅÏȼ¶ÓÃ1-10Ö®¼äµÄÕûÊý±íʾ£¬ÊýÖµÔ½´óÓÅÏȼ¶Ô½¸ß£¬Ä¬ÈϵÄÓÅÏȼ¶Îª5¡£
ÔÚÒ»¸öÏß³ÌÖпªÆôÁíÍâÒ»¸öÐÂỊ̈߳¬ÔòпªÏ̳߳ÆÎ ......
JavaỊ̈߳ºÐÂÌØÕ÷-Ëø£¨ÉÏ£©
ÔÚJava5ÖУ¬×¨ÃÅÌṩÁËËø¶ÔÏó£¬ÀûÓÃËø¿ÉÒÔ·½±ãµÄʵÏÖ×ÊÔ´µÄ·âËø£¬ÓÃÀ´¿ØÖƶԾºÕù×ÊÔ´²¢·¢·ÃÎʵĿØÖÆ£¬ÕâЩÄÚÈÝÖ÷Òª¼¯ÖÐÔÚjava.util.concurrent.locks °üÏÂÃæ£¬ÀïÃæÓÐÈý¸öÖØÒªµÄ½Ó¿ÚCondition¡¢Lock¡¢ReadWriteLock¡£
Condition
Condition ½« Object ¼àÊÓÆ÷·½·¨£¨wait¡¢notify ......