我需要实现一个包含一些任务的线程池,这些任务将在不同的线程中完成。问题是2:我需要一个返回值,并且必须在准备就绪后立即使用返回值。
现在我的代码正在返回价值和工作。问题是我无法检查主线程中线程的状态,因为它以这种方式阻塞它。我需要一些回调我不知道如何实现。一些简单的例子有些帮助吗?我搜索了很多,我找不到符合我需要的东西。
这是我的Callable
:
public class MyAsyncCallable<V> implements Callable<V> {
CallbackInterface ci;
public MyAsyncCallable(CallbackInterface ci) {
this.ci = ci;
}
public V call() throws Exception {
System.out.println("Call of MyCallable invoked");
System.out.println("Result = " + this.ci.doSomething(10, 20));
return (V) "Good job";
}
}
public interface CallbackInterface {
public int doSomething(int a, int b);
}
和主要:
MyAsyncCallable<String> mac = new MyAsyncCallable<String>((a, b) -> a + b);
ex.submit(mac);
如何在不阻止主要线程要求的情况下获得结果?
答案 0 :(得分:0)
如果您使用swing编写应用程序,是否可以使用inkvokeLater在工作线程的最后更新gui?
def FiletypeNumber():
path = Boaz.get()
print('{!r}'.format(path))
for (dirpath, dirnames, filenames) in walk(path):
for filename in filenames:
_, ext = os.path.splitext(filename)
FileTypeList.append(ext)
if ext not in Typofiles:
Typofiles.append(ext)