병렬 알고리즘이 문을 두드리면 오류 처리에 대해 생각하는 것이 좋습니다.
처음에는 오류 코드가있었습니다. 그들은 빨려 들었다. 그것들을 무시해도되므로 실패 할 수 있으며 디버그하기 어려운 코드를 생성 할 수 있습니다.
그런 다음 예외가 발생했습니다. 일단 발생하면 무시할 수 없게되었고 대부분의 사람들 (Joel 제외)은 더 좋아합니다.
이제 병렬 코드를 도와주는 라이브러리가 생겼습니다. 문제는 병렬 코드가 아닌 코드를 사용하는 것만 큼 쉽게 병렬 코드에서 예외를 처리 할 수 없다는 것입니다. 비동기식으로 작업을 시작하고 예외가 발생하면 스택 추적을 해제 할 때까지 추적 추적이 없습니다. 할 수있는 최선의 방법은 해당 개체가있는 경우이를 캡처하여 작업 개체에 등록하는 것입니다. 그러나 예외의 주요 강점을 물리칩니다. 예외를 확인해야하며 추가 노력없이 무시할 수 있습니다 . 단일 스레드 코드에서는 예외가 반드시 적절한 조치를 트리거합니다 (프로그램 종료를 의미하더라도).
언어 구현 또는 라이브러리는 병렬 코드의 오류를 어떻게 지원해야합니까?