=============================================================
DoSomething.java
package test.thread.test;
public class DoSomething implements Runnable {
public void run() {
try {
while (true) {
System.out.println("第一次得到大小:" + ListPool.list.size());
while (ListPool.list.size() > 1) {// 必须保留最后一个,做为下一次更新时的起初id
String info = "";
synchronized (ListPool.list) {
info = ListPool.list.get(0);
DBTest.removeListObject();
System.out.println("第二次得到大小:" + ListPool.list.size());
if (ListPool.list.size() <= 5) {
DBTest.addListObject(5);// 模拟从数据库中加载数据
}
}
System.out.println(info);// 打印出内容,在现实中模拟到其它地方实现逻辑处理
Thread.sleep((int) (Math.random() * 1000));//睡眠随机的毫秒,实现中可以改成1或者10毫秒,适当的释放资源给其它程序使用
}
System.out.println("测试执行");
Thread.sleep(6 * 1000);
DBTest.addListObject(5);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}