【发布时间】:2015-02-22 00:23:27
【问题描述】:
在 Java ZK 应用程序中,在 ViewModel 中,我有多个线程执行特定功能。任何线程第一次执行该函数需要很长时间,但在执行一次后,它会在其他线程执行时立即返回,因为此时它已在缓存中检索到值。但是第一次应该只由一个线程执行,好像多个线程执行该函数一样,它不会返回任何一个,因为当每个线程调用相同的函数时缓存仍然是空的,因此返回时间加起来为他们所有人。 那么如何让其他线程等待第一个线程完成,因为线程属于不同的对象,因此同步方法在这里不起作用。可以在这里使用一个变量来与第一个线程已完成的其他线程通信吗?请注意,所有线程属于同一类的不同对象,即 ViewModel,它不能扩展线程类或实现 Runnable,因为它是 ZK 框架类。 可以提出任何解决方案。
【问题讨论】:
-
同步缓存值。
标签: java multithreading asynchronous threadpool zk