2017-11-25 2 views
0

내 코너 4 서비스에서 가능한 경쟁 상태입니다.는 각도 4

둘 이상의 (또는 그 이상의) 나머지 전화가 동시에 끝나면 어떻게됩니까?

1) this.calculate (result) 메서드를 두 번 동시에 호출 할 예정입니까? 이 경우, myArray가 일치하지 않는 상태 일 수 있습니다. 왜냐하면 2 개의 계산이 동시에 발생하기 때문입니다 (=> 경쟁 조건). 이 문제가 어떻게 해결 될 수 있습니까?

2) 또는 this.calculate (결과)를 항상 동기라고 부릅니까? 이 경우 한 번에 하나의 계산 만 수행 될 수 있으므로 myArray는 항상 일관된 상태로 (보장됨) 유지됩니다.

답변

2

calculate에 비동기 코드가 없다고 가정하면이 메서드는 다시 호출되기 전에 항상 완료로 실행됩니다.

두 개의 별도 인스턴스 인 calculate을 동시에 실행할 수 없습니다.

JavaScript (브라우저) is single-threaded 때문입니다.