내 응용 프로그램에서 데이터베이스를 사용하고 있습니다. 예를 들어 응용 프로그램이 시작될 때 두 개의 스레드가 데이터베이스에 액세스 할 때와 같이 동 기적으로 데이터베이스에 액세스해야하는 요구 사항이 있습니다. 어떻게이 상황을 피할 수 있습니까? 방법 상기동기화 된 데이터베이스 액세스
private synchronized Database accessDB()
{
Database dbObj = null;
try {
_uri = URI.create(dbLocation + DB_NAME);
try {
dbObj = DatabaseFactory.openOrCreate(_uri, new DatabaseSecurityOptions(false));
System.out.println("Database Created"+_dbTopNews);
} catch (ControlledAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DatabaseIOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DatabasePathException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURIException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return dbObj;
}
TE 디버깅 리턴 제 스레드 반대하면되지만 두 번째 스레드가 액세스 될 때 널 (null)을 반환
AY 일반적
다음 번에는 제목에 capslock이 필요하지 않습니다. –
Thomas Jungblut, 고맙습니다. 많은 친구, 제 마음 속에 유지해야 할 것이 하나도 없습니다. D – ayachama