起因:多线程对数据库写操作
办法:让多线程先把数据写到一个公共的arraylist中,等这个list足够大的时候,单开一个线程进行写操作。
方案:
首先,将这个arraylist使用单例模式思想,这样就可以让多线程都用它,并且写一起。
然后,用观察者观察这个arraylist的长度,如果到了指定长度,就进行写操作,同时清空这个arraylist,方便多线程们继续使用。
结果,实现了!!
-----
感谢对此方案提出过宝贵意见的 姜同学,小强同学,大师同学~~~hoho~~排名不分先后~~O(∩_∩)O哈哈~
demo: 让一个循环让单例的arraylist写数字...每当arraylist长度到5的时候,打印arraylist,并且置空。
代码如下:
Singleton.java 单例的类
Java代码
package testArray;
import java.util.ArrayList;
import java.util.Observable;
public class Singleton extends Observable{
private ArrayList
arrayList=new ArrayList
();
private static Singleton singleton=null;
/**
* 避免被继承
*/
private Singleton(){
}
/**
* 产生单例
* @return
*/
public static Singleton getInstance(){
if(singleton==null){
singleton=new Singleton();
}
return singleton;
}