-
就是powerjob worker(应用)启动的时候会初始化一个h2数据库
![image](https://user-images.githubusercontent.com/65269574/157151363-da404c7b-fbbc-4084-add9-969313f5a47d.png)
![image](https://user-images.githubusercontent…
fzdwx updated
2 years ago
-
对于`JDK`自带的`ThreadLocal`在显式设置为`null`后,子线程获得的值是`null`(`java.lang.ThreadLocal.ThreadLocalMap.Entry`的`value`为`null`)如下:
```java
public static void main(String[] args) {
final InheritableThreadLoc…
-
你好,使用场景是这样的。业务上存在一个或者多个线程池,每一个线程池的任务会创建新的线程任务,任务可能是跨线程池的,也可能是在同一个线程池中。问题是出现了数据丢失或者旧数据重用的情况,在任务多的情况下出现的更加频繁。
```java
public class TTLTest {
static TransmittableThreadLocal transmittableThreadL…
-
当前线程设置的一个值,在子线程,子子线程,孨线程中都可以访问到。
当创建很多复杂的子线程时,如何能在所有子线程中清理掉 remove() 那些值?
是需要找到所有子线程依次调用 remove清理吗?还是这个已经实现了无需自己手动清理?
谢谢!
-
- 声明的`TransmittableThreadLocal`一般为静态变量;
- 或者在`Spring`的`bean`中声明(单例模式)。
`TransmittableThreadLocal`一直被强引用持有。
那么 `holder`即使设计的为`InheritableThreadLocal`,
若不在子线程显式调用`remove()`方法,也不会被`GC`回收吧。
-
我们是做压测产品,需要使用ttl对线程池中的数据进行传标。
我们想把我们的产品封装成一个jar包,可以像arthas-boot那样去动态attach agent。
对ttl的处理方式是通过手动调用 TtlAgent.premain() ,但是发现不会对已经创建了的Runnable进行增强了。
所以对这一块的处理有什么好的建议吗?
-
support TTL Wrapper for Functional Interface like Supplier.
Otherwise need convert `Supplier` to `Callable`, this is not convenient.
-----------
需要将`Supplier`转换为`Callable`
-
你好:
我有一个项目,我能控制线程池和Runnable的创建,但我没法让其他人把ThreadLocal替换为TransmittableThreadLocal,请问有没有办法可以用你们的方案来达到效果?谢谢。
kaneg updated
2 years ago
-
`restore`方法最终会调用到`ThreadLocal.set()`,之后没有主动调用`remove`;是否会因此产生内存泄漏?
-