gpt4 book ai didi

Java线程访问对象

转载 作者:行者123 更新时间:2023-11-30 04:17:51 24 4
gpt4 key购买 nike

我有一个执行线程的函数

Public Class Connector{

private static void anyFileConnector() {
// Starting searching Thread
traverse.executeTraversing();
}

}

public class Traverse {
private synchronized void executeTraversing(Path dir) {
ExecutorService executor = Executors.newFixedThreadPool(1);
// Doing some operation
executor.submit(newSearch);
}
}
} catch (IOException | DirectoryIteratorException x) {
// IOException can never be thrown by the iteration.

} finally {
executor.shutdown();
}
}
}

public class Search implements Runnable {
private List<ResultBean> result = new ArrayList<ResultBean>();

public void run() {
synchronized (Search.class) {
// In this Search Method i am setting above list "result"
this.search();

}
}

我想要“结果”对象,其值位于连接器类中的“executeTraversing”方法之后,并且代码更改最少。到达那里的最佳方式是什么。

以上所有类都位于不同的包中。

我不知道,我怎样才能用谷歌搜索它:(

最佳答案

如果您希望线程返回一个值(即您想要的对象),您应该考虑重构对象以实现 Callable() 而不是 Runnable(),并使用 Future 类返回值。

这可以帮助我们举一个例子: http://www.vogella.com/articles/JavaConcurrency/article.html#futures

关于Java线程访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17912816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com