JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java SE 討論區 » Threads/Synchronization  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:如何讓method之間無法平行進行, 但是.... [Re:easylin]
hkdennis2k





發文: 1926
積分: 6
於 2007-09-30 10:07 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
這樣的話, 的確是很麻煩.....

大既要這樣寫吧?

ConcurrentHashMap map;

method1(key){
Object lock=new Object[]{
new Object(),
new Object(),
new Object()
};
Object lock2=map.putIfAbsent(key,lock);
if(lock2!=null) lock=lock2;
synchronized(lock[1]){
synchronized(lock[2]){
/////// logic here
}
}
}

method2(key){
略..........
synchronized(lock2[0]){
synchronized(lock2[2]){
略..........
}

method3(key){
略..........
synchronized(lock2[0]){
synchronized(lock2[1]){
略..........
}

沒試過, 不過最簡單的方法大約是這樣吧!?
而且就是可見的 memory leak (沒有在 map remove 任何 key)

不過如果要求不太高的話, 可放棄 cast1 會比較簡單一點


reply to postreply to post
1. Programming is not coding

2. Learning Java is not leaning Java syntax

3. Study, not wait for be taught

4. Answer to yourself, not ask somebody else

5. Code is poetry

---
6. 我跑去寫 C# 了....

---
7. 回到 Java, PHP 還有 servers farm
---
8. 很久沒有寫 Java 了, 倒
話題樹型展開
人氣 標題 作者 字數 發文時間
5469 如何讓method之間無法平行進行, 但是.... easylin 425 2007-09-29 16:54
2993 Re:如何讓method之間無法平行進行, 但是.... Duncan 538 2007-09-29 18:47
2957 Re:如何讓method之間無法平行進行, 但是.... easylin 105 2007-09-29 20:48
2923 Re:如何讓method之間無法平行進行, 但是.... hkdennis2k 450 2007-09-29 23:33
2985 Re:如何讓method之間無法平行進行, 但是.... easylin 534 2007-09-30 01:14
2916 Re:如何讓method之間無法平行進行, 但是.... kentyeh 191 2007-09-30 08:51
2919 Re:如何讓method之間無法平行進行, 但是.... hkdennis2k 642 2007-09-30 10:07
2901 Re:如何讓method之間無法平行進行, 但是.... plutotw 791 2007-09-30 10:46
2919 Re:如何讓method之間無法平行進行, 但是.... hkdennis2k 366 2007-09-30 12:29
2875 Re:如何讓method之間無法平行進行, 但是.... plutotw 544 2007-09-30 16:05
2828 Re:如何讓method之間無法平行進行, 但是.... hkdennis2k 245 2007-10-01 01:06
2909 Re:如何讓method之間無法平行進行, 但是.... plutotw 295 2007-10-01 08:38
2887 Re:如何讓method之間無法平行進行, 但是.... easylin 457 2007-09-30 16:38
2805 Re:如何讓method之間無法平行進行, 但是.... hkdennis2k 40 2007-10-01 01:27
2858 Re:如何讓method之間無法平行進行, 但是.... easylin 52 2007-10-01 01:42
» JWorld@TW »  Java SE 討論區 » Threads/Synchronization

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8