inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Công nghệ cốt lõi của Spring Framework

PropertyEditor non thread-safe 한 이유

491

bhsbhs2351964

5 câu hỏi đã được viết

0

안녕하십니까

한가지만 여쭤봐도 될까요?

제가 기초가 부족해서 갑자기 이부분이 헷갈리더라고요 죄송합니다 

강의를 보던중에 PropertyEditor는 non thread-safe라서 변수를 공유하기 때문에 값이 달라질수 있다고 하셔서(싱글톤이라 그런가요?) 궁금증이 생겼는데

스프링에서 단순 클래스에서 변수를 사용하는 것은 공유를 안하나요?

ex) public class Test{

                   int i = 1;

...

}

스프링에서 여러명이 동시에 클래스 또는 함수를 사용해서 i 값을 변경해도 해당 사용자는 독립적으로 i 값을 참고하나요?

 

spring java

Câu trả lời 1

0

whiteship

안녕하세요. 좋은 질문 감사합니다.

당연히 int i 라는 값도 여러 쓰레드가 동시에 사용할 때 멀티 스레드에 안전한 변수가 아닙니다. 즉, 값이 막 다른 쓰레드에서 변경한 값으로 바뀔 수가 있다는 말이죠. 그래서 싱글톤으로 사용할 클래스에 있는 변수들은 쓰레드 세이프한 방법으로 쓰거나, 태초부터 여러 쓰레드에서 동시에 써도 안전한 인스턴스만 써야 합니다.

PropertyEditor는 보여주신 예제처럼 여러 쓰레드에서 공유하는 변수가 생기기 때문에 멀티 쓰레드 환경에서 안전하지 않은 겁니다. 그 대안으로 권장해 드린, Formatter는 저렇게 공유하는 데이터 자체가 없기 때문에 멀티쓰레드 환경에서 써도 안전한 거구요.

 

0

bhsbhs2351964

답변감사합니다.

"여러 쓰레드에서 동시에 써도 안전한 인스턴스만 써야 합니다"  

이 부분만 조금 더 설명해 주실수 있으신가요?

0

whiteship

"멀티 쓰레드에 안전한 인스턴스"라는게 여러가지가 있거든요. 위에서 언급한것 처럼 상태가 없는 인스턴스도 그런 인스턴스들 중에 하나이고, 불변 객체도 당연히 안전하구요, 모든 메소드에 synchronized 키워드를 사용한 인스턴스도 안전하겠죠. 멀티 쓰레드에서 공유해서 사용하는 인스턴스는 그런식으로 멀티 쓰레드에 안전한 인스턴스만 사용해야 한다는 말입니다.

0

bhsbhs2351964

답변 감사합니다.

BeanFactory와 ApplicationContext 중 사용하고 싶은 컨테이너를 설정 할 수 있나요?

0

381

1

프로젝트 생성에 관련한 질문

0

376

1

안녕하세요 강의 내용을 듣다가 궁금점이 생겨 글을 남기게 되었습니다.

0

371

1

HttpServeltRequest 객체의 빈 스코프에 대해 질문 드립니다.

0

304

0

빈의 초기화 시점이 궁금합니다.

0

393

1

이 강의 예제소스 없나요?

0

345

1

릴로딩 기능에 대해

0

404

1

Bean 을 특정 Application...Event 발생 후, 등록하는 방법이 궁금합니다

0

612

3

IoC/DI와 POJO의 관계

1

749

2

기선님 RetentionPolicy에 대해서 질문이 있습니다.

0

291

1

안녕하세요 기선님!

3

486

3

비동기적으로 실행할때

0

314

2

"Prototype/프록시"로 설정했는데 동일한 객체로 나옵니다

0

530

4

@Autowired 로 가져오는 Bean은 ?

2

280

1

Type-Safety 의미

0

538

1

Null Point

0

318

1

WebDataBinder를 특별히 쓰는 이유가 있나요?

0

384

1

안녕하세요?

0

336

2

애노테이션이 없습니다(?)

0

279

3

코드 중 변수 앞에 적는 것이 무엇인지 알고 싶습니다.

0

295

2

강의 하시면서 사용하는 resolving 이란 단어는 어떤 의미인가요?

1

1499

1

IOC컨테이너관련 질문입니다

0

245

3

인터페이스가 있는 경우 인터페이스 타입으로 주입하는 추가 질문입니다.

0

259

1

백기선님 , 강좌 순서 때문에 고민드립니다.

0

462

4