当数据达到2000或者等待5秒后再次运行
2015-11-19 18:29
267 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/leo030/article/details/84751271
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; class MyObject implements Runnable { private Object lock;//线程锁 private List<Map<String,Object>> codes = new ArrayList<Map<String,Object>>(); public MyObject() { this.lock = new Object(); } public void setCodes(List<Map<String,Object>> list){ codes.addAll(list); System.out.println("codes size="+codes.size()); if(codes.size()>=2000){ synchronized (lock) { System.out.println("i'm going."); codes.removeAll(codes); lock.notify(); } } } public void run() { try { while(1==1){ synchronized (lock) { lock.wait(5000L); System.out.println("has going"); } } } catch (InterruptedException e) { e.printStackTrace(); } } } public class Wait { public static void main(String[] args) { MyObject o = new MyObject(); new Thread(o).start(); int i=0; while(1==1){ List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("123", "123"); list.add(map); o.setCodes(list); i++; if(i%2000==0){ try { TimeUnit.SECONDS.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } } } }
相关文章推荐
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- Fragment应用放置后台很久再次进入不会重新刷新数据展示、或者直接崩溃问题解决
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- Extjs4.2:运行时修改store的url达到动态改变Grid数据的目的
- Android 加载数据或者联网等待的弹框动画
- Extjs4.2:运行时修改store的url达到动态改变Grid数据的目的
- CLR 无法从 COM 上下文 0x1a2740 转换为 COM 上下文 0x1a28b0,这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作
- 服务器稳定,打断点调试数据数据总为nil,但是再次运行NSLog的时候确实有数据的
- 关闭子页面刷新父页面时候,Firefox 必须发送将会导致重复之前动作的数据(例如搜索或者下订单)。 ie提示:若要再次显示该页面,web浏览器需要重新发送您以前提交的信息
- andengine按home键或者power键再次进入程序数据丢失问题
- Android使用TabHost实现在首页tab再次点击首页tab时,刷新首页数据或者recyclerView回到顶部的需求
- android studio编程时出现的错误:ListView重新载入后,更新数据或者再次进入该ListView加载数据,数据不显示 解决方法
- 数据的比较分析(一):我们达到或者超过目标了吗?
- Flume Push数据到spark streaming或者接收Spark streaming的poll数据时实际运行程序总结
- Android 应用home键,来电或者其他方式进入后台运行,再次进入程序需要重新登录问题
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积
- js在方法Ajax请求数据来推断,验证无效(OnClientClick="return Method();"),或者直接运行的代码隐藏
- 详解Java虚拟机管理的内存运行时数据区域
- 将Excel或者Txt文件中的数据导入Oracle数据库
- mybatis缓存问题导致删除的数据再次查询到