У меня есть две задачи, которые должны выполняться вместе. Первой задачей является сохранение данных в базе данных. И вторая задача записи видео.Выполнение двух задач одновременно в Java
В настоящее время я использую Thread для каждой задачи и запускаю его одновременно.
...
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 для Java Swing Component. CMIIW
спасибо.
для лучшей помощи (чтобы избежать любых догадок) отправить сообщение [SSCCE] (http: // sscce.org/), short, runnable, compilable – mKorbel
Невозможно сказать. Это зависит от характера общего состояния и способа доступа к нему: getGraph(), getState(), setCaptureFile(), record() и т. Д. –
Когда вы говорите, что делаете их одновременно, вы просто работаете обе задачи одновременно или вы записываете и немедленно сохраняете этот материал в базе данных? – Daniel