小编Man*_*yal的帖子

如果线程本地映射包含对threadlocal对象的弱引用,那么为什么它不是垃圾回收?

我有一个threadlocal对象,它使用非静态内部类的对象初始化,如下所示:

public class StressTestThreadLocal {

  private final ThreadLocal<TObject> tObjectThreadLocal = ThreadLocal.withInitial(
      () -> new TObject(1000));

  private static ExecutorService executorService = Executors.newFixedThreadPool(4);

  private void startThread() {
    executorService.submit(tObjectThreadLocal::get);
  }

  public class TObject {
    List<Integer> test;

    TObject(int n) {
      test = new ArrayList<>();
      for (int i = 0; i < n; i++) {
        test.add(i);
      }
      System.out.println("Done making TObject " + UUID.randomUUID());
    }
  }

  public static void main(String[] args) {
    for (int i = 0; i < 100000; i++) {
      StressTestThreadLocal testThreadLocal = new …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection thread-local

4
推荐指数
1
解决办法
660
查看次数

标签 统计

garbage-collection ×1

java ×1

thread-local ×1