代码之家  ›  专栏  ›  技术社区  ›  foamroll

如果内部静态被用作可调用对象的包装器,如果它修改了singleton的静态参数,那么它会在singleton块中运行吗?

  •  0
  • foamroll  · 技术社区  · 12 年前

    1) 是否有可能 Runnable 如果类修改了静态 ConcurrentHashMap 在外部singleton中,在它调用 Callable ? 我正在考虑一个场景,其中多个可运行程序同时对映射中的同一项进行修改。多个可运行程序在一个静态中运行 ThreadPoolExecutor 在外部单例中。

    2) 可调用函数也会被调用吗 Thread 作为跑步者,如果我做 val = myCallable.call() ? 它根据可调用的结果修改concurrenthashmap。

    2 回复  |  直到 12 年前
        1
  •  1
  •   C. K. Young    12 年前
    1. ConcurrentHashMap 被设计为非阻塞的,尽管如果同时发生对同一哈希段的多次更新,则可能会出现一些争用。
        2
  •  1
  •   SLaks    12 年前
    1. 除非运行静态初始化程序,否则Java永远不会隐式阻止。

    2. call() 是一个普通的方法调用,将在调用线程中同步运行,就像任何其他方法调用一样。