线程上下文设计模式(上)
Posted Alleria Windrunner
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程上下文设计模式(上)相关的知识,希望对你有一定的参考价值。
什么是上下文
public final class ApplicationContext
{
//在 Context 中保存 configuration 实例
private ApplicationConfiguration configuration;
//在 Context 中保存 runtimeinfor 实例
private RuntimeInfo runtimeInfo;
//...其他
//采用 Holder 的方式实现单例
private static class Holder
{
private static ApplicationContext instance = new ApplicationContext();
}
public static ApplicationContext getContext()
{
return Holder.instance;
}
public void setConfiguration(ApplicationConfiguration configuration)
{
this.configuration = configuration;
}
public ApplicationConfiguration getConfiguration()
{
return this.configuration;
}
public void setRuntimeInfo(RuntimeInfo runtimeInfo)
{
this.runtimeInfo = runtimeInfo;
}
public RuntimeInfo getRuntimeInfo()
{
return this.runtimeInfo;
}
}
线程上下文设计
private ConcurrentHashMap<Thread, ActionContext> contexts =
new ConcurrentHashMap<>();
public ActionContext getActionContext()
{
ActionContext actionContext = contexts.get(Thread.currentThread());
if (actionContext == null)
{
actionContext = new ActionContext();
contexts.put(Thread.currentThread(), actionContext);
}
return actionContext;
}
以上是关于线程上下文设计模式(上)的主要内容,如果未能解决你的问题,请参考以下文章
在 recyclerview 片段中实现上下文操作模式的问题
onActivityResult 未在 Android API 23 的片段上调用
JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段