두 개의 스칼라 함수를 실행하는 데 비용이 많이 듭니다. 각각은 아래와 같이 변수 값을 향상시키기 시작하고 동시에 5 분 (또는 다른 시간) 후에 변수를 실행하고 싶습니다. 나는 두 가지 기능을 종료하고 최신 값을 그 시간까지 가져 가고 싶습니다.병렬로 두 개의 스칼라 함수를 실행하고 5 분 후에 최신 값을 반환합니다.
def func1(n: Int): Double = {
var a = 0.0D
while (not terminated) {
/// improve value of 'a' with algorithm 1
}
}
def func2(n: Int): Double = {
var a = 0.0D
while (not terminated) {
/// improve value of 'a' with algorithm 2
}
}
여기 코드를 어떻게 구조화해야하는지 알고 싶습니다. 여기서 가장 좋은 방법은 무엇입니까? 시간 초과와 함께 두 개의 다른 스레드에서 실행하고 시간 초과시 최신 값을 반환하는 방법에 대해 생각했습니다. 그러나 그렇게하기위한 다른 방법이있을 수 있습니다. 나는 어떤 통찰력이라도 대단히 도움이 될 수 있도록 Scala를 처음 사용합니다.
이것은 이후 더 나은 방법입니다 반환 그것은 부작용에 의존하지 않고 평범한 코드가 어떻게 생겼는지에 더 가깝습니다. 나는 초보자에게 더 직관적이되도록 노력했다. –