두 개의 태스크가 함께 실행되어야합니다. 데이터를 데이터베이스에 저장하는 첫 번째 작업. 그리고 비디오 녹화의 두 번째 작업.Java에서 동시에 두 개의 태스크 실행
현재 각 작업마다 스레드를 사용하고 동시에 실행합니다.
...
Thread insertDb = new Thread(new Runnable() {
@Override
public void run() {
// Insert to Database
setDataMediaVisit(thumbStr);
insertVisitRecord();
}
});
Thread capture = new Thread(new Runnable() {
@Override
public void run() {
if (getGraph().getState() == DSCapture.PREVIEW) {
getGraph().setCaptureFile("data/"+ CaptureController.getNoMr() +"/videos/"+videoStr, DSFilterInfo.filterInfoForProfile(new File("profiles/demo_profile800x570_WM8_VBR_100.prx")), DSFilterInfo.doNotRender(), true);
getGraph().record();
}
setData(CaptureController.getNoMr());
}
});
insertDb.start();
capture.start();
...
위 코드가 안전한가요? EDT를 사용하고 싶지만 EDT for Java Swing Component를 알고 있습니다. CMIIW
감사합니다.
(추측을 피하기 위해) [SSCCE] (http : // sscce.org/), 짧게, 실행 가능, 편집 가능 – mKorbel
불가능합니다. 공유 상태의 본질과 액세스되는 방식에 따라 달라집니다 : getGraph(), getState(), setCaptureFile(), record() 등 –
동시에 수행하고 있다고하면, 두 작업을 동시에 수행하거나 녹화하고 즉시 해당 푸티지를 데이터베이스에 저장하고 있습니까? – Daniel