2014-12-28 11 views
0

데이터베이스와 통신하기위한 인터페이스를 개발했습니다. 인터페이스 개발을 진행하는 동안 멀티 스레딩을 고려하지 않았지만 한 명의 사용자 만이 응용 프로그램을 사용하게 될 것이라고 생각했지만 이제는 많은 사용자가 동일한 인터페이스를 사용하여 동시에 작업하기를 원합니다.하나의 데이터베이스 많은 인터페이스

그래서 하나의 로컬 데이터베이스와 3 개의 동일한 애플리케이션 인스턴스가 동시에 데이터베이스와 상호 작용합니다.

그래서 데이터베이스가 멀티 스레딩을 처리하려고합니까? 아니면 처리 할 코드를 추가해야합니까?

독립 실행 형 응용 프로그램이므로 데이터베이스가 로컬 서버에 배포됩니다.

데이터베이스 서버에 3 명의 사용자를 만들어야 로그인 할 수 있다고 생각합니까?

경험을 통해 더 나은 해결책을 제안 할 수 있습니다.

+1

적어도 플랫폼이 아닌 모든 프로세스에서 효율적으로 멀티 스레드를 관리 할 수는 없습니다 - 진단 방법. 데이터베이스는 분명히 돌진 조건을 갖지만 대개 데이터베이스에 대한 조작은 원자 적이라고 가정 할 수 있습니다. 데이터가 항상 최신 상태인지 확인하려면 캐싱이 최소인지 확인하십시오. – Qix

답변

1

3 명의 사용자를 만들 필요가 없습니다. 응용 프로그램의 각 인스턴스에서 동일한 사용자를 사용하면 충분합니다.

코드를 멀티 스레딩에 적용 할 필요가없는 경우가 있습니다. 이는 응용 프로그램에 따라 다릅니다. 예를 들어, db에서 읽는 경우에만 전혀 적응할 항목이 없습니다. 반면에 동시 쓰기가 가능한 경우에는 다음과 같이 입력해야합니다. 트랜잭션. 응용 프로그램의 기능에 대한 자세한 내용이 없으면 더 구체적 일 수는 없습니다.

예를 들어 다른 인스턴스가 레코드를 읽는 동안 인스턴스를 읽는 경우 첫 번째 레코드는 레코드의 오래된 버전으로 계산을 수행 중일 수 있습니다. 문제가 있다면 응용 프로그램에서 고려해야합니다 (예 : transaction 또는 더 높은 수준의 응용 프로그램 논리를 사용)

+0

응용 프로그램은 레코드를 만들고, 레코드를 제거하고, 레코드를 가져옵니다. 그래서 코드가 데이터베이스와 상호 작용하는 곳에서만 멀티 스레딩 코드를 추가한다는 의미입니까? – imorad87

관련 문제