java ×Ô¼ºÊµÏÖ ReadWriteLock £¨Ò»£©
¶àÏ̶߳Áдͬһ¸ö¶ÔÏóµÄÊý¾ÝÊÇºÜÆÕ±éµÄ£¬Í¨³££¬Òª±ÜÃâ¶Áд³åÍ»£¬±ØÐë±£Ö¤ÈκÎʱºò½öÓÐÒ»¸öÏß³ÌÔÚдÈ룬ÓÐÏß³ÌÕýÔÚ¶ÁÈ¡µÄʱºò£¬Ð´Èë²Ù×÷¾Í±ØÐëµÈ´ý¡£¼òµ¥Ëµ£¬¾ÍÊÇÒª±ÜÃâ“д-д”³åÍ»ºÍ“¶Á-д”³åÍ»¡£µ«ÊÇͬʱ¶ÁÊÇÔÊÐíµÄ£¬ÒòΪ“¶Á-¶Á”²»³åÍ»£¬¶øÇҺܰ²È«¡£
ҪʵÏÖÒÔÉϵÄReadWriteLock£¬¼òµ¥µÄʹÓÃsynchronized¾Í²»ÐУ¬ÎÒÃDZØÐë×Ô¼ºÉè¼ÆÒ»¸öReadWriteLockÀ࣬ÔÚ¶Á֮ǰ£¬±ØÐëÏÈ»ñµÃ“¶ÁËø”£¬Ð´Ö®Ç°£¬±ØÐëÏÈ»ñµÃ“Ð´Ëø”¡£¾ÙÀý˵Ã÷£º
DataHandler¶ÔÏó±£´æÁËÒ»¸ö¿É¶ÁдµÄchar[]Êý×飺
package com.crackj2ee.thread;
public class DataHandler {
// store
data:
private
char[] buffer = "AAAAAAAAAA".toCharArray();
private
char[] doRead() {
char[] ret = new char[buffer.length];
for(int i=0; i<buffer.length; i++) {
ret[i] = buffer[i];
sleep(3);
}
return ret;
}
private void
doWrite(char[] data) {
if(data!=null) {
buffer = new char[data.length];
for(int i=0; i<buffer.length; i++) {
buffer[i] = data[i];
sleep(10);
}
}
}
private void
sleep(int ms) {
try {
&nb
Ïà¹ØÎĵµ£º
GRASPģʽ:General Responsibility Assignment Software Patterns£ºÍ¨ÓÃÔðÈηÖÅäÈí¼þģʽ
ÀïÃæÖØÒªµÄ¸ÅÄîÊÇÔðÈΣ¬ÔðÈÎÊÇÀà¼äµÄÒ»ÖÖºÏÔ¼»òÊÇÒåÎñ£¬¿ÉÒÔϸ·ÖΪÁ½²¿·Ö£¬Óù«Ê½±íʾÈçÏ£º
ÔðÈÎ = ÖªµÀÔðÈÎ + ÐÐΪÔðÈΣ¨ÕâÀïÃæËÆºõ´æÔÚ¸ÅÄîµÄÑ»·¶¨Ò壩
×¢£ºÓÃͨË׵ϰÀ´½²£¬ÔðÈξÍÊÇÒ»¸öÀàÖªµÀÒª×öʲô£¬²¢ÇÒÄܹ»×öʲô¡£
· ......
ÉÏÎÄ̸µ½ÁËÊÊÅäÆ÷ģʽ£¬ÒªÊÇTargerÄ¿±ê½ÇÉ«ÓÐ20·½·¨£¬ÄÇôÿ¸öÊÊÅäÆ÷¶¼ÒªÈ¥ÊµÏÖ½Ó¿ÚÖÐÕâЩ·½·¨£¬ÕâÑù×ö¸Ð¾õÌ«·Ñ¾¢¡£ ÕâÖÖÇé¿öÏ£¬¿ÉÒÔ¿¼ÂÇʵÏÖ¸öĬÈÏÊÊÅäÆ÷£¬È»ºóʵ¼ÊµÄʵÏÖÄ¿±ê½ÇÉ«½Ó¿ÚµÄÀà¿ÉÒÔ¼¯³ÉÕâ¸öĬÈÏÊÊÅäÆ÷£¬È»ºóÖØÐ´Ä¬ÈÏʵÏֵķ½·¨¼´¿É¡£ Ò»¡¢ÔÀíͼ ......
×÷Ϊjava²ËÄñ£¬ÔÚѧϰµ½Êý¾Ý¿â²Ù×÷µÄʱºòÍùÍù»áÓöµ½Ò»¸öºÜÍ·Í´µÄÎÊÌ⣬Êý¾Ý¿âÖÐÎÄÂÒÂë¡£ÕâËÆºõÊÇÿ¸öjava³ÌÐòÔ±Ôڳɳ¤¹ý³ÌÖж¼»áÓöµ½µÄÎÊÌ⣬ÏÂÃæÎҾͰÑÎÒ×Ô¼ºµÄ¼¸ÖÖ·½·¨ºÍ´ó¼Ò·ÖÏíһϡ££¨Ò»°ãÊÇÔÚMyEclipseÏ¿ª·¢£©
javaÏîÄ¿£º
Ê×ÏÈ£¬È·±£ÏîÄ¿µÄ±àÂëÊÇgbk»òutf-8(),ÔÚWindows->Preferences->General->Workplac ......
£¨1£©Ìí¼Ó±àÒëjava²Ëµ¥
1¡¢´ò¿ª ¸ß¼¶£>¹¤¾ßÅäÖÃ
2¡¢ÔÚ“ÃüÁîÀ¸”ÀïÊäÈë javac %n%e £¨%nΪÎļþÃû²»´øÀ©Õ¹Ãû£¬%eΪÀ©Õ¹Ãû£©
3¡¢ÔÚ“¹¤×÷Ŀ¼”ÉÏÌî %p (±íʾÎļþËùÔÚĿ¼)
4¡¢ÔÚ“²Ëµ¥ÏîÄ¿Ãû³Æ”ÉÏÊäÈë ±àÒëjava³ÌÐò £¨ÏÖÔÚÔڲ˵¥ÉϵÄÃû³Æ£©
5¡¢Ñ¡Ôñ“±£´æµ±Ç°Îļþ”¸´Ñ¡¿ ......
Java ÓïÑÔÊÇÒ»ÖÖ¾ßÓж¯Ì¬ÐԵĽâÊÍÐͱà³ÌÓïÑÔ£¬µ±Ö¸¶¨³ÌÐòÔËÐеÄʱºò£¬ Java ÐéÄâ»ú¾Í½«±àÒëÉú³ÉµÄ . class Îļþ°´ÕÕÐèÇóºÍÒ»¶¨µÄ¹æÔò¼ÓÔØ½øÄڴ棬²¢×éÖ¯³ÉΪһ¸öÍêÕûµÄ Java Ó¦ÓóÌÐò¡£ Java ÓïÑÔ°Ñÿ¸öµ¥¶ÀµÄÀà Class ºÍ½Ó¿Ú Implements ±àÒë³Éµ¥¶ÀµÄÒ»¸ö . class Îļþ£¬ÕâЩÎļþ¶ÔÓÚ Java ÔËÐл·¾³À´Ëµ¾ÍÊÇÒ»¸ö¸ö¿ÉÒÔ¶¯Ì¬ ......