这个问题...不知道是你没说清楚还是我没看明白.不过简单的实现以下还是比较简单的
既然多线程,那么,不同的保存方式就是两个不同的线程.
然后你在调用的时候new 出来这个d对象,然后运行这个d对象,就可以开了一个线程执行了.
interface A{boolean 保存(Entity entity)
}
class B implements A{
public boolean 保存(Entity entity){
//文件保存
}
}
class C implements A{
public boolean 保存(Entity entity){
//数据库保存
}
}
class Main{
public static void main(String[]args){
Entity entity = new Entity()
D d = new D(entity)
new Thread(D).start()
}
}
class D implements Runnable{
private A a
private Entity entity
public D(Entity entity){
this.entity = entity
//用随机数得到1,2,如果是1则将a初始化为B,如果是2,则将a初始化为c
}
public void run(){
a.保存(entity)
}
}
当然还有另外一个思路.
你可以生成两个Entity的队列
一个队列是要用文件保存的任务.一个队列是用数据库保存的队列.
你在保存的时候,仅仅需要往不同的队列里放,然后就由专门的线程来去保存即可
手打~~如果还有问题,可追问.不过大概明天才能回答,我一天回答一两个问题
启动2个线程一个用来插入数据
另一个要监视,监视线程可以考虑这么来实现 :每隔一段时间来对数据库进行检索,获得更新的部分数据,可以通过SQL语言实现。
当然这个办法比较笨
效率不好
如果你对数据库足够了解
应当知道里面有触发器机制
对插入数据建立一个触发器
每次的数据插入就会引发一个触发器事件
这时候再来对数据库中的数据进行检索
或者你可以自定义一个监听器 Listener
对数据进行监听
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)