关于[同步]的讨论--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

晕,歉揍阿,我写出来你看看

 

 

发布了114 篇原创文章 · 获赞 3 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/gojava/article/details/251919