2012-06-03 6 views
2

요즘 GPars (Groovy Parallel System) 라이브러리를 탐색 중이며 DataFlow 변수를 발견했습니다. 설명서에는 데이터 흐름 변수를 한 번만 할당 할 수 있다고 나와 있습니다. 그러나 나는이 제한에 대한 이유를 찾을 수 없었다.왜 DataFlow 변수는 한 번만 할당 할 수 있습니까?

GPars의 Dataflow 변수가 한 번만 할당되는 이유를 누군가가 알 수 있습니까?

답변

2

데이터 흐름 프로그래밍 변수에서 write-once는 값을 사용하는 (소비하는) 코드를 동기화하는 방법입니다. 실행을 안내하는 데이터 흐름입니다.

일반적인 프로그래밍 및 데이터 흐름 동시성에 대한 유용한 책은 Concepts, Techniques, and Models of Computer Programming입니다. 여기서 데이터 흐름 동기화 변수를 사용하는 방법에 대해 자세히 알아볼 수 있습니다 (Oz 언어 사용).

다른 한편으로 변수에 둘 이상의 값을 할당 할 수있는 경우 값을 쓸 때마다 해당 소비자에게 알림을 보내야합니다. 이는 메시지 전달과 비슷합니다.

0

DataflowVariable은 절대 값을 변경할 수 없으므로 경쟁 조건을 가질 수 없습니다. 비 블로킹 (non-blocking) 쓰기도 할 수 있으므로 설계 상 매우 효율적이고 교착 상태가 발생하지 않습니다. 초기 할당 후에도 비 차단 읽기를 수행 할 수 있습니다.