首页 > TAG信息列表 > weak-references

c#-在.NET集合中剔除WeakReferences的最佳时间

我有一个收藏夹(我正在写Weak Dictionary),并且需要定期剔除已死的WeakReferences.我通常看到的是在“添加”和“删除”方法中进行检查,并说:“对集合进行X修改后,就该淘汰了.”这对于我来说是可以接受的,但是似乎应该有一个更好的方法. 我真的很想知道GC何时运行并在之后立即运行我

使用WeakReference的Java示例的线程安全

在阅读了SO文章后,我正在阅读Java中的弱引用,并意识到我并不真正知道它们是什么. 以下代码摘自Arnold,Gosling和Holmes撰写的“ Java编程语言,第四版”中的第457页第17章:“垃圾回收和内存” import java.lang.ref.*; import java.io.File; class DataHandler { private File

如何在Java中为ReferenceQueue.remove()指定正确的类型?

我有一个带有WeakReferences的ReferenceQueue的类. class Example<K,V> { ReferenceQueue<WeakReference<V>> queue = null; Thread cleanup = null; [...] Example () { queue = new ReferenceQueue<WeakReference<V>>();

java-我可以将WeakReference传递给Observable侦听器吗?

我正在修复一个遗留应用程序,该应用程序在实现Observable的类中被Observers列表保留对象时存在问题.正确删除观察者将是一个漫长的任务,因此我认为我可以使用WeakReference来克服这一问题.问题是,由于WeakReference未实现Observer,因此无法调用Observable.addObserver(new WeakRefe

循环引用不调用弱引用回调

我正在尝试为具有循环引用的Python类编写终结器.我发现弱引用回调是way to go.不幸的是,似乎从未调用过用作回调的lambda.例如,运行以下代码: def del_A(name): print('An A deleted:' + name) class A(object): def __init__(self, name): print('A created')

java-当值返回键时如何缓存弱引用?

我正在使用番石榴的Cache< Key,Value>.每当无法再更强地访问Key时,就应该对垃圾回收项进行垃圾收集(总有一天……).如果没有从Value返回到Key的引用,则使用CacheBuilder.weakKeys()可以做到这一点. 我可以弱引用,但这随时可能使我的Value无效.我可以处理,但我不愿意. 我可以使用wea

Android-内部类AsyncTask是否必须具有WeakReference?

假设我在Activity类中有一个内部类AsyncTask. 我必须在这个AsyncTask中拥有weakRefeernce吗? 另外,我是否一直都必须对AsyncTask具有weakReference? 最后,如果我将内部类AsyncTask声明为静态,是否安全?解决方法:是的,如果Asynctask是内部类或只是创建自己的类,则始终将其声明为静态,请

android-关于弱引用的问题

我的程序中有一个或两个弱引用. 例如: ClassX myClassX= new ClassX(); //Line 1 WeakReference<ClassX> myWeakClassX = new WeakReference<ClassX>(myClassX); //Line 2 if(myWeakClassX.get() != null) // Line 3 { //do something with reference //Line 4 } 我的问题: 如

我需要对循环依赖使用WeakReference吗?

我们在这里谈论Android.我们已经使用Model-View-Presenter方法对体系结构进行了建模,但遇到了一个弱引用问题. 快速信息: >演示者处理逻辑,网络呼叫等. >视图手柄可在屏幕上显示数据,显示加载栏等. 活动/片段类包含对演示者的引用.演示者类拥有对视图类的引用. 我们的视图分类实际上

Python中的pickling weakref

我仍然是Python的新手,甚至更新的酸洗.我有一个类Vertex(ScatterLayout)与__getnewargs__(): def __getnewargs__(self): return (self.pos, self.size, self.idea.text) 我的理解是,这将导致pickle从__getnewargs __()而不是对象的字典中挑选对象. pickle在以下方法中调用(在

python – 为什么weakref不能在这个绑定方法上工作?

我有一个项目,我试图使用带有回调的weakrefs,我不明白我做错了什么.我创建了简化测试,显示了我与之混淆的确切行为. 为什么在这个测试中test_a按预期工作,但self.MyCallbackB的weakref在类初始化和调用test_b之间消失了?我想只要实例(a)存在,对self.MyCallbackB的引用应该存在,但事

java – 弱参考可维护性

我正在阅读java中的弱引用,听起来很简单,如果一个对象只有弱引用,那么它可以被垃圾收集器收集.除非您的参考在使用该值之前变为死亡,否则会发生什么? 例: 假设我有一个带有密钥{1,2,3,4,5}的弱哈希映射,所有值都是1.现在假设你有[1:10]中的数字的随机数生成器.现在每次获得该数字时,

有没有办法在GC确定无法访问时回收复杂的java对象

在C中,我使用引用计数对象来填充“自动”回收对象池 SmartPointer<ObjType> object = pool.getObject(); // hold reference // ... do stuff with object over time. object = nullptr; // that is when reference // count goes to 0 – 现在我在C对象上

从python中的weakref代理获取常规引用

有没有办法为我得到弱代理的对象获得正确的引用? 我已经浏览了weakref模块的文档,并且没有在那里得到答案,或者通过手动戳一个weakproxy对象.解决方法:您可以通过调用它来从weakref对象获取引用: obj = ref() 从weakref docs: Weak reference objects have no attributes or metho

内在类的Android弱参考

我已经阅读了文章http://developer.android.com/resources/articles/avoiding-memory-leaks.html.在本文中,建议使用带弱引用的静态内部类. public class GalleryVideo extends Activity { private int AUDIO_NO = 1; ........................... ................

Python weakref回调和__del__执行顺序

在Python中,有没有办法在对象完成后调用函数? 我认为弱反射中的回调会这样做,但是一旦对象被垃圾收集,但是在调用对象__del__方法之前,看起来会调用weakref的回调.这似乎与the notes on weakrefs and garbage collection in the Python trunk相反.这是一个例子. import sys import

java – 如何在并发HashMap中进行Weakrefernce

在我的程序中,我有一个场景,Mutiple Thread将在一个Map上运行(put和get).与线程一样,使用在地图中放置一个键/值,同时另一个线程从地图中检索相同或不同键的键/值.现在,如果我使我的地图同步,那么它将是一个很大的性能问题,所以我决定转移到ConcurrentHashMap.在这种情况下,我有另

基于Google Guava身份的弱密钥的简单Java哈希映射?

我需要一个带弱键的简单哈希映射. Java自己的WeakHashMap给了我这个,但不是身份语义(它使用equals()进行密钥比较). Google的Guava库已经改进了它的哈希映射方法.在最新版本(14.0)中,我现在显然应该使用CacheBuilder,而不是使用MapMaker(其中有很多(如果不是大多数的东西都已弃用))

python – 一种在对象上使用weakref作为属性的更有效方法?

我知道在Python中我可以做类似以下的事情: from weakref import ref class A(object): def __init__(self, parent): self._parent = ref(parent) @property def parent(self): return self._parent() a = A(some_other_object) print a.parent 在

java – 声明一个WeakReferences数组?

我知道如何声明一个单独的WeakReference,但是它们的数组呢? WeakReference<String> testWR; testWR = new WeakReference<String>("Hello"); String[] exStrArr; exStrArr = new String[5]; WeakReference<String>[] testWR2; //not worki

Java WeakHashMap类

我想测试Java WeakHashMap类功能,为此我编写了以下测试: public class WeakHashMapTest { public static void main(String args[]) { Map<String, Object> weakMap = new WeakHashMap<>(); String x = new String("x"); String x1 = new String(&quo

Java垃圾可以在范围结束前收集变量吗?

假设我们有这样的程序: void main() { // Point 0 BigThing bt = new BigThing(); // Point 1 WeakReference<BigThing> weak = new WeakReference<>(bt); // Point 2 doSomething(weak); // Point 3 } void doSomething(...) { ... } 我们知道,

java – 我们可以有一个弱线程吗?

我们可以对正在运行的线程进行弱引用,以便在低性能CPU中终止吗? 我的意思是,做这样的工作吗? WeakReference<Thread> ref = new WeakReference<Thread>(new Thread(){ public void run(){ while(true){ /* your code */ } } }); 这样,我想要一个线程具有低优先级来