2014-03-13 2 views
0

동시에 발생할 수있는 여러 작업에서 파일 내용을 업데이트하는 요구 사항이 있습니다.파일에 내용을 쓰는 데 동기화 문제가 발생하지 않도록하는 방법 - Java (android)

각 요청을 대기열에 넣고 각 요청마다 파일 내용을 하나씩 변경해야합니다.

파일 내용을 변경하는 이벤트를받는 안드로이드 브로드 캐스트 수신기를 사용하고 있습니다.

어떻게하면이 이벤트를 대기시키고 다른 요청 후에 파일 1을 변경할 수 있습니까?

제안 사항을 제공하거나 가능한 경우 내가 참조 할 수있는 링크를 제공해주십시오.

+0

각 요청에 코드를 보내고이 코드를 저장하고 코드를 검사 한 관찰자를 구현하여 쓰기 위해 동기화 된 블록에 중계합니다. 코드를 우선 순위 또는 요청 발송 번호로 지정하십시오. 또는 쓰기 대기중인 동기화 된 잠금을 보유하고있는 현재 스레드의 상태를 대기중인 작성자에게 알리는 브로드 캐스트를 사용할 수도 있습니다. – Skynet

+0

불분명 함. 첫째, 파일에이 이벤트가 어디에 기록되어 있습니까? 결국? 파일의 어느 곳에서나? – fge

+0

@fge - 각 이벤트마다 전체 파일을 다시 써야합니다. – user2702700

답변

0

단일 스레드와 함께 실행 프로그램을 사용했습니다. 이벤트가 수신되면 실행 프로그램을 실행 프로그램에 게시 할 수 있습니다. 풀에 1 개의 칩이 있기 때문에 이러한 작업은 순서대로 실행됩니다.

3

몇 시간 전에, 도달하고자하는 목적에 부응하기 위해 내부적으로 Android에서 사용하는 클래스를 통해 왔는데 이제는 Android Support Library을 통해 사용할 수 있습니다.

AtomicFile이라고하며, here으로 문서화되어 있으며 해당 구현 here을 찾을 수 있습니다.