精华帖 (0) :: 良好帖 (0) :: 新手帖 (14) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-26
首先,在线程的run方法里加synchronized没有作用,这个关键字是保证被访问的资源在同一时间只能被一个线程访问,其他的线程必须等到该线程访问完毕,并释放syn的锁资源的时候才能被允许访问。
其次,必须保证find和insert/update方法的一致性,只对find或insert等单独加synchronized是没有用的,想想a线程run的时候首先访问dao的find方法,b线程此时也要访问dao的find方法,因为find方法是同步的,b线程会等待到a线程执行完find方法后才能进入find方法,但是这个时候不能保证a线程按照执行顺序已经把数据insert到数据库了,所以,应该把find和insert放入同一个synchronized,才能保证不会有重复的数据被insert |
|
返回顶楼 | |