Безопасность ниток с синглетонами - PullRequest
0 голосов
/ 08 февраля 2012

Допустим, у меня есть синглтон, который я создаю с помощью пружины, MyWebService.Цель MyWebService - вернуть MyObject.

РЕДАКТИРОВАТЬ: Когда я передаю не потокобезопасный объект SomeBuilder и создаю с ним объекты MyObject, я думаю, это опасно.Но: если я сдаю фабрики, которые при каждом вызове метода каждый раз создают новый объект SomeBuilder, я думаю, что я в безопасности?

@Webservice
public class MyWebService {
private final SomeFactory someFactory;
private final SomeBuilder someBuilder;

  public MyWebService(SomeFactory someFactory, SomeBuilder someBuilder){
    this.someFactory=someFactory;
    this.someBuilder=someBuilder;
   }
    public MyObject getSomeObject(SomeArgs someArgs){
    //this is threadsafe?
   SomeBuilder newlyCreatedBuilder=  someFactory.createObjectBuilder();
return   newlyCreatedBuilder.getMyObject(someArgs);


//where as this is dangerous?
return someBuilder.getMyObject(someArgs);

}
}

1 Ответ

0 голосов
/ 08 февраля 2012

Да, можно использовать ссылки на фабрики или любые другие java-классы в одиночном коде, если эти другие реализации также безопасны для потоков.

...