gpt4 book ai didi

java - Start/Sus​​pend/Resume/Suspend ...其他类调用的方法

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:51 25 4
gpt4 key购买 nike

我想实现一个 Anytime k-NN 分类器,但我找不到一种方法来调用“classify(...)”方法一段特定的时间,挂起它,获取该方法挂起之前的可用结果,恢复该方法一段特定的时间,挂起它,获取该方法挂起之前的可用结果,等等...我使用数据结构来获得近似结果。当算法遍历数据结构时,最终会遇到实际的训练数据 vector 。

public class AnytimeKNN{
public int classify(queryPoint, k){
class_label;
1. Assign an initial value to 'class_label'.
2.while(not actual training data vectors are encountered){
1. traverse the data structure
2. assign a new value to 'class_label'
}
}
}

我想通过以下方式从主方法调用“classify(..)”方法:

  • 启动方法“classify(..)”
  • 在为“class_label”分配初始值时暂停方法“classify(..)”。
  • 获取初始标签
  • 继续执行“classify(..)”方法 X 时间
  • 暂停方法“classify(..)”
  • 获取新的“class_label”
  • 恢复方法“classify(..)”X 时间等等......

提前致谢!

最佳答案

听起来像是并发编程中典型的生产者-消费者场景。在 Java 中,您可以使用两个二进制信号量来解决这个问题。一个告诉分类器应该运行,一个告诉主线程获取下一个结果。分类器等待其信号量,直到被主线程触发。主线程的行为类似。

当然,还有其他选择,例如使用并发队列。分类器将其结果放入队列中,主线程将其拉出,如果没有新结果则等待。这将是我最喜欢的解决方案,但也许您有一个想要以固定时间间隔启动和停止该方法的原因。

关于java - Start/Sus​​pend/Resume/Suspend ...其他类调用的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11603891/

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