2011-02-18 3 views
0

나는 각각 데이터 피드를 수신하는 3 개의 프로세스가 있습니다. 모든 3 개의 프로세스는 데이터 수신 후 동일한 파일을 읽고 업데이트해야합니다. 3 가지 프로세스는 하루 종일 계속 실행됩니다. 분명히 각 프로세스는 파일에 독점 읽기/쓰기 잠금을 가져야합니다.파일을 읽고 쓰는 다중 프로세스를 다루는 더 좋은 방법이 있습니까?

"named mutex"를 사용하여 파일의 읽기/쓰기를 보호하거나 FileShare.None을 사용하여 파일을 열 수 있습니다.

이러한 2 가지 접근 방식이 효과가 있습니까? 어느 것이 더 낫습니까?

programe는 C#으로 작성되었으며 Windows에서 실행됩니다.

+0

요구 사항이 모호하고 거의 없습니다. 독점 읽기 잠금? 일이 잘못되었을 때 빨지 않을 방법을 선택해야합니다. 예기치 않게 충돌하는 뮤텍스를 소유하는 프로세스와 비슷합니다. 또는 너무 오래 들고 OOM으로 다른 프로세스가 중단 될 수 있습니다. dbase 서버로 성공의 구덩이에 빠지십시오. –

답변

1

여기에 명명 된 뮤텍스를 사용하십시오. 한 프로세스에서 FileShare.None을 사용하여 파일을 열면 파일을 열려고 할 때 다른 프로세스에서 예외가 발생합니다. 즉, 이러한 프로세스에서 대기 및 재 시도 등을 처리해야합니다.

0

나는 명명 된 뮤텍스에 동의한다. 파일 액세스에 대한 대기/재 시도는 매우 지루하고 예외가 발생하기 쉬운 반면 명명 된 뮤텍스 솔루션은 매우 깨끗하고 간단합니다.

0

"모니터"는 동기화 문제의 해결책이기 때문에 여러분 중 하나입니다.

관련 문제