有一个对象列表,按对象的过期时间戳升序排序,当内存快要不足时,想触发一个线程从头遍历列表,把列表前面过期的对象都释放掉(对象的资源是被pool的,必须手动release)列表不是线程安全的(因为程序其他部分逻辑的原因,这里使用线程安全的集合类并不能解决问题),工作线程和释放资源的线程同时只能有一个操作对象列表我的想法是,如果释放资源的线程在列表上操作太长时间,工作线程一直被阻塞,很长时间整个系统就不能提供服务了,所以我想限制每次释放资源的线程的执行时间,在给定的时间里能释放多少对象就释放多少(并且时间结束时,是优雅的结束释放工作),然后工作线程继续执行请问如何实现我这个思路?如果同时只有一个线程访问对象列表,是不是把释放对象的工作放在工作线程中更好?怎么实现执行特定的时间呢?希望能有更标准的思路
慕桂英3389331
慕丝7291255
相关分类