数据库多线程访问数据库读到脏的数据怎么办

java在启动多线程操作数据库时出现異常“”程序执行步骤:1、创建三个List结合2、for循环开始三条线程。3、将三个集合交给三条线程处理4、每条线程循环List集合对两张表处理:描述... java在启动多线程操作数据库时出现异常“”
1、创建三个List结合。
2、for循环开始三条线程
3、将三个集合交给三条线程处理。
4、每条线程循环List集合对两张表处理:
描述:数据库为oracle一张主表,一张从表主外建关联。
线程执行规则先查主表是否存此条数据,如果存在先删除两張表的此条数据在插入与此条数据主键一样的一条数据。
只有部分数据入库了只能通过sql语句杀掉锁。
请问高人怎样设计程序能避免这種情况

TA获得超过982个认可 推荐于

我不懂JAVA,但死锁这

每种开发工具和数据库都会碰到.解决办法是:

1、程序方面优化算法(如有序资源分配法、銀行算法等),在一个程序里能不用多线程更新同一张数据库表 尽量不要用,如果要用其避免死锁的算法就很复杂。

2、数据库方面设置等待超时时间

3、发生死锁后直接KILL掉数据库进程

你对这个回答的评价是


这个感觉不能用多线程吧,查询可以使用用到删除不行。

你对這个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

通过一个多线程去获取视频的第┅帧然后往数据库中保存这个第一帧,在插入的时候出现了一个问题

实现的代码如下,如何控制这样一个问题想到了synchronized,但不知道怎麼用


//FirstFrameThread就是通过路径获取第一帧然后往数据库中写的多线程

//获取的第一帧不存在,使用默认的图片
//保存第一帧到数据库就是在这里报的錯

我要回帖

 

随机推荐