關於[同步]的討論--synchronized

 (2005-01-13 14:48:27)   Fiery sky

怎麼能上網??不是不能上了嗎?

(2005-01-13 14:49:02)   betaFox

呵呵

呵呵

(2005-01-13 14:49:00)   Fiery sky

地稅??

(2005-01-13 14:49:28)   betaFox

是阿

(2005-01-13 14:52:56)   Fiery sky

新聞列表 list

所有對list操作的方法我都加上synchronized 是不是就可以了

(2005-01-13 14:53:30)   Fiery sky

這樣就可以防止兩個人同時操作了

(2005-01-13 14:54:13)   betaFox

你要幹嗎

(2005-01-13 14:54:22)   betaFox

list在那兒?〉

(2005-01-13 14:54:46)   Fiery sky

list是個static ,我把它用來存儲查詢結果

(2005-01-13 14:55:38)   Fiery sky

爲保證其信息的實時性,我有個更新操作,我怕同時兩個人對其更新

(2005-01-13 14:56:56)   betaFox

插入刪除〉?

(2005-01-13 14:56:39)   Fiery sky

這些操作,我做成了synchronized型,

(2005-01-13 14:56:44)   Fiery sky

(2005-01-13 15:00:22)   betaFox

我卡你方法是怎麼寫的

(2005-01-13 15:00:35)   betaFox

你用了arrylist??  

(2005-01-13 15:00:29)   Fiery sky

恩!

(2005-01-13 15:01:12)   betaFox

你知道他和vector的不同吧

(2005-01-13 15:01:47)   Fiery sky

不知道

(2005-01-13 15:02:02)   Fiery sky

有什麼不同??

(2005-01-13 15:02:22)   Fiery sky

vector效率高馬??

(2005-01-13 15:03:08)   betaFox

我看你方法是怎麼寫的
??

(2005-01-13 15:04:36)   betaFox

vector上的各種操作本身就是同步的,

像dd..del...

我覺得你用vector就完事了·

vector效率低

(2005-01-13 15:04:56)   Fiery sky

你覺得呢?

(2005-01-13 15:05:35)   Fiery sky

是馬??我想想

(2005-01-13 15:10:25)   Fiery sky

恩,用法跟arrayList差不多

(2005-01-13 15:12:20)   betaFox

你要是時時同步地價很大的

(2005-01-13 15:12:25)   betaFox

代價

(2005-01-13 15:12:27)   Fiery sky

怎麼講??

(2005-01-13 15:13:22)   betaFox

就是一個線程在add時別的都得排隊

(2005-01-13 15:14:11)   betaFox

mmd,你用vector就完事了!靠

(2005-01-13 15:13:58)   Fiery sky

get也要排隊??

(2005-01-13 15:14:10)   Fiery sky

nnd大哥要學習啊

(2005-01-13 15:14:35)   betaFox

當然

(2005-01-13 15:14:42)   Fiery sky

但是我get沒加同步也不行??

(2005-01-13 15:15:17)   Fiery sky

只有添加刪除加不就行了嗎??

(2005-01-13 15:16:29)   betaFox

我是說你要使用vector的話,get也是同步的

(2005-01-13 15:16:42)   Fiery sky

但是如果我是自己控制的話,就不是

(2005-01-13 15:16:59)   betaFox

你看看vector的原碼,基本都是synchronized

(2005-01-13 15:16:59)   Fiery sky

是不是??get不用等待的

(2005-01-13 15:17:29)   betaFox

那你的get也得加上同步

(2005-01-13 15:17:12)   Fiery sky

除了add跟del

(2005-01-13 15:17:21)   Fiery sky

爲什麼??

(2005-01-13 15:17:56)   betaFox

在你add的過程中,來了一個get

(2005-01-13 15:18:18)   betaFox

我搞錯了?

(2005-01-13 15:18:52)   Fiery sky

這是沒有辦法的,就算你有同步,但是也不能保證,get完了之後又更新了

(2005-01-13 15:19:12)   Fiery sky

??

(2005-01-13 15:20:12)   betaFox

應該是get this的同時來了個del this,get不同步del不就進來了??

(2005-01-13 15:21:35)   betaFox

這種情況應該會出錯吧?

(2005-01-13 15:22:30)   betaFox

但是在你add的過程中,來了一個get,不會出錯,但是出現了順序問題

(2005-01-13 15:22:50)   betaFox

呵呵,羅嗦了這麼多。。。。。

(2005-01-13 15:22:40)   Fiery sky

恩,假如都有同步,我先add,然後get,但是其間別人來了個del豈不是也沒什麼用啊

(2005-01-13 15:22:46)   Fiery sky

你說得很對

(2005-01-13 15:23:52)   betaFox

同步作用兩個:1/保證完整性2/維護順序---呵呵

(2005-01-13 15:24:34)   Fiery sky

整個類的鎖怎麼加??

(2005-01-13 15:24:59)   betaFox

恩,假如都有同步,我先add,然後get,但是其間別人來了個del豈不是也沒什麼用啊---

del只能排隊等待add--get的完成,誰讓你鴨來晚了

(2005-01-13 15:25:10)   betaFox

N

(2005-01-13 15:25:00)   Fiery sky

????

(2005-01-13 15:25:52)   betaFox

你的意思是對象鎖?

(2005-01-13 15:26:35)   betaFox

arraylist aa=..

....synchronized(aa)....

(2005-01-13 15:26:32)   Fiery sky

我是說,我先add,本來打算然後get,但是中間有個del怎麼辦,單個程序加鎖不能保證add與get之間沒有操作的阿

(2005-01-13 15:28:10)   betaFox

void add(....){

synchronized(aa){

aa.add(..);

}

}

(2005-01-13 15:28:35)   betaFox

別的方法都這樣寫,應該是這樣

(2005-01-13 15:28:55)   betaFox

對吧?

(2005-01-13 15:28:58)   Fiery sky

恩,你的意思是不是synchronized(Paginator) 

(2005-01-13 15:29:38)   Fiery sky

起它的函數用到我的分頁時,要加鎖

(2005-01-13 15:30:49)   betaFox

是阿

(2005-01-13 15:31:16)   betaFox

我說的不一定對阿,呵呵

(2005-01-13 15:31:32)   Fiery sky

你說得對,我也是怎麼理解的,不過沒有你那麼好

(2005-01-13 15:31:37)   Fiery sky

N

(2005-01-13 15:32:27)   betaFox

我帥是真的,但是很壞,不好

(2005-01-13 15:33:38)   betaFox

別人這麼說的/

(2005-01-13 15:33:41)   betaFox

呵呵

(2005-01-13 15:34:02)   Fiery sky

暈,歉揍阿,我寫出來你看看

 

 

發佈了115 篇原創文章 · 獲贊 2 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章