Java, 多线程的问题。一个引用(比如命名为a)指向了内存中的一个实例对象,想“切段”这个对象与

Java,多线程的问题。一个引用(比如命名为a)指向了内存中的一个实例对象,想“切段”这个对象与其他引用之间的联系,即把所有指向这块内存空间的引用全部指向null。但由于... Java, 多线程的问题。一个引用(比如命名为a)指向了内存中的一个实例对象,想“切段”这个对象与其他引用之间的联系,即把所有指向这块内存空间的引用全部指向null。但由于是多线程,实在无法穷举出所有指向这块内存空间的所有引用。这个该怎样办到? 展开
 我来答
LMLU23
2016-04-20 · TA获得超过901个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:364万
展开全部
关键在于你为什么要去释放其他线程的引用?
假如其他线程正在使用这个对象,这样会导致其他线程的执行出错。因此如果其他线程必须使用这个对象,则应该由线程自己来管理这个引用,这就不会出现你所说的这种问题。
你说的问题可能会出现在高速缓存中。这里缓存可能是共用的,管理缓存的是单独的线程,使用缓存又是单独的线程。这时如果使用缓存的线程都释放了某个对象,这个对象就应该回收,但缓存中确实保存着这个对象的引用。此时你可以使用Java提供的弱引用机制:
java.lang.ref.WeakReference<T>来作为缓存的引用。当弱引用所引用的对象是弱引用到达的,则将改引用的对象放到回收队列中,访问缓存仍然会得到WeakReference,但此时从里面获取的对象就是null。要注意的是:你仍然需要对缓存中的WeakReference进行管理。
详细请自行搜索Java的引用机制。关键字:WeakReference、SoftReference、PhantomReference、ReferenceQueue
百度网友1bb63a484
2016-04-20 · TA获得超过520个赞
知道小有建树答主
回答量:1615
采纳率:0%
帮助的人:251万
展开全部
可以编写个自动 实现的软件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
初次的老巢
2016-04-20 · 超过26用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:21.4万
展开全部
试试用循环啊!在给一个变量记录有多少。
追问
怎么循环?问题是,你怎么知道哪些引用在指向那块内存?都不在同一个线程里!你怎么能知道要循环哪些量?
追答
java.util.concurrent包中的执行器(Executor)可以管理你创建的Thread对象。
影响任务行为的一种简单的方法是调用sleep(),这个会使任务终止执行给定的时间。(休眠)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式