目前我这边有这样一个场景,Java内部有个缓存,当这个缓存有数据的时候,需要开一个线程不同的去刷,如果这个缓存没有数据的时候,我希望这个线程能够关闭和阻塞,目前这个缓存是否有数据不可控

目前我这边有这样一个场景,Java内部有个缓存,当这个缓存有数据的时候,需要开一个线程不停的去刷,如果这个缓存没有数据的时候,我希望这个线程能够关闭或者阻塞,目前这个缓存是否有数据不可控

在缓存放入的时候开启线程,在缓存清除的时候关闭线程;

判断一下缓存里没有数据就sleep呗

给缓存设置数据的地方,new一个刷数据的线程,放到线程池里去执行,刷数据的线程写一个while(true)去刷数据,每次刷数据之前都先判断下数据是否为空,如果为空,跳出循环,然后关闭当前线程

look,设置数据的时候唤醒线程,没有数据就让线程await