public class SystemContext {
private static ThreadLocal pagesize = new ThreadLocal();
public static int getPagesize() {
Integer _pagesize = (Integer) pagesize.get();
if (_pagesize == null) {
_pagesize = Integer.MAX_VALUE;
}
return _pagesize;
}
public static void setPagesize(int _pagesize) {
pagesize.set(_pagesize);
}
public static void removePagesize() {
pagesize.remove();
}
}
我在 filter 类里SystemContext.setPagesize(7);
System.out.println(SystemContext.getPagesize()); 打印出来的是7
可在其他类里System.out.println(SystemContext.getPagesize()); 打印出的就不是7,我知道不是同个线程,可是不知道怎么在其他类也能读取,出7来,忘哪位大哥给点提示
ThreadLocal 传递参数的问题
答案:2 悬赏:70 手机版
解决时间 2021-02-04 11:12
- 提问者网友:我一贱你就笑
- 2021-02-04 05:45
最佳答案
- 五星知识达人网友:青尢
- 2021-02-04 06:40
ThreadLocal是保证在同一个线程内共享,而不同线程的实例是不同的。
如果想在不同线程内共享,那么直接用公共静态属性即可,如:
public static int pagesize;
如果想在不同线程内共享,那么直接用公共静态属性即可,如:
public static int pagesize;
全部回答
- 1楼网友:摆渡翁
- 2021-02-04 07:15
1). thread:thread 是程序执行的最小单元,它是分配cpu的基本单位。可以用 thread 来执行一些异步的操作。
2). service:service 是android的一种机制,当它运行的时候如果是local service,那么对应的 service 是运行在主进程的 main 线程上的。如:oncreate,onstart 这些函数在被系统调用的时候都是在主进程的 main 线程上运行的。如果是remote service,那么对应的 service 则是运行在独立进程的 main 线程上。因此请不要把 service 理解成线程,它跟线程半毛钱的关系都没有!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯