Java????????????????????????
???????????? ???????[ 2012/10/23 10:07:26 ] ????????
????????????????????顣??????????B/S????£???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ò??????????????
??????????е???????????????????????????????????????????????????????б???????????????????????????????????????????????ò?????????????????????????ó????????????“???????”?????????????????????????????????
????????????????????????????????????????????????
public class MultiThread{
private int i = 0;
private String value = null;
public void run(){
if(i++%2 == 0){
value = "abcdefghijk";
for(int i = 0; i < value.length(); i++)
System.out.print(value.charAt(i));
System.out.println();
}
else{
value = "1234567890";
for(int i = 0; i < value.length(); i++)
System.out.print(value.charAt(i));
System.out.println();
}
}
public static void main(String[] args) {
final MultiThread source = new MultiThread();
for(int i = 0; i < 4; i++){
new Thread(new Runnable(){public void run(){
while(true)source.run();
}}).start();
}
}
}
?????????????????????????????4?????????????????????source??????????????source??run?????????value?????????value??????????4???????????
??????????????????????????“???”??????????????????????????????????????????????ν????????????
???????????????????????????????????????????????????????????????????????????????????????????????????仯??????仯?????б??????????????????????????????У????????????FIFO??first in first out????????????????????????????? synchronized ???????ɡ?????????????????????????е?????????????????????????????????????????????????????????????????????????????????
????????????????synchronized??????????
public synchronized void run(){
if(i++%2 == 0){
value = "abcdefghijk";
for(int i = 0; i < value.length(); i++)
System.out.print(value.charAt(i));
System.out.println();
}
else{
value = "1234567890";
for(int i = 0; i < value.length(); i++)
System.out.print(value.charAt(i));
System.out.println();
}
}
??????????Java5??????????μ??????java.util.concurrent.locks.ReentrantLock??????????????java.util.concurrent.locks.ReentrantReadWriteLock??java.util.concurrent.locks.ReentrantReadWriteLock??????壬????????????ReadLock????????WriteLockд????????try-catch-finally?????????á?
?????????????????????????????????????????????????????????
??????1????????
????????????synchronized?????Java??????????淽???????????????????monitorenter??monitorexit????????????????????????????м????????????????????
??????????????ReentrantLock????Java??API????????????????????????????lock() ?? unlock()??????try-catch-finally?????????á??????Щ??????????????????ж?????????????????????????????
??????2?????????
????Java5?????synchronized????????????????????????????????ReentrantLock???????????????????????ReentrantLock??????
????Java6???????????????????????????????synchronized??????Java???????????JVM???????????????????????á?
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11