Я знаю, что сеансы не являются потокобезопасными. Мой первый вопрос: безопасно ли передать объект другому потоку, выполнить некоторую работу с ним, затем передать его обратно в исходный поток и обновить.
public class Example1 {
MyDao dao;
...
public void doWork() {
MyEntity entity = dao.getEntity();
Runnable job = new Job(entity);
Thread t = new Thread(job);
t.run();
t.join();
dao.merge(entity);
}
}
Мой второй вопрос: безопасно ли новое создать объект в одном потоке и сохранить его в другом?
public class Example2 {
MyDao dao;
...
public void doWork() {
MyEntity entity = new Entity();
new Thread(new Job(dao, entity)).run();
}
}
public class Job implements Runnable {
private MyDao dao;
private MyEntity entity;
...
@Override
public void run() {
dao.save(entity);
}
}
Изменить Я забыл упомянуть, что объекты специально настроены для активной загрузки