반응형

동시성 3

태태개발일지 - 자바 고급 멀티쓰레드(김영한)

동시성저번 글은 메모리 가시성에 대한 글을 작성했다. 보통 성능을 위해 변수를 메모리에서 직접 참조하지 않고, 캐시에 담아서 값을 처리를 하는데, 이를 통해서 생기는 문제였다. 이번에 다룰 부분은 동시성이다. private Integer x = 7000if(x > 5000){ x -= 4000;} 쓰레드 안에서 이러한 로직을 실행할 때 문제가 생긴다.  만약 두개의 쓰레드가 동시에 실행한다면 어떻게 될까?  둘다 if문에 들어가서 검증로직을 수행 후 , x의 값을 변경하게 된다. 동시에 값을 참조했으므로 x의 값은 7000으로 찍히고 둘다 if문 안으로 들어가게 된다. 첫번째 쓰레드가 x에서 -4000을 해버렸고, 두번째 쓰레드가 값을 변경할때 x는 1000이 되게 되어 x는 음수가 되는 상황이 발생..

JAVA 2025.02.22

태태개발일지 - 김영한의 실전 자바 - 고급편

멀티태스킹과 멀티 프로세싱 멀티태스킹프로그램의 실행  프로그램을 구성하는 코드를 순서대로 CPU에서 연산(실행)하는 일이다.  코어가 하나있어도, 실행 시간을 분할하여 마치 동시에 실행되는 것 처럼 하는 기법을 시분할 기법이라고한다.: 실제로 동시에 실행되는게 아니라 일정한 원리를 통해서 번갈아가 면서 실행한다.이것을 운영체제가 결정하는(스케줄링) 이라고 한다. 멀티프로세싱 코어가 여러개일때?cpu안에는 실제 연산을 처리할 수 있는 코어라는 것이있다.tip. 요즘은 cpu안에 2개이상의 코어가 들어가있다. 2개가 일정한 원리를 가지고 수행하면 더 빠르다. 멀티 프로세싱:cpu를 사용하여 동시에 여러가지 작업을 수행.하드웨어 기반으로 성능 향상다중 코어 프로세서를 사용하는 현대 컴퓨터 시스템  멀티 테스킹..

JAVA 2025.01.30

태태개발일지 -WIL

1. 문제  - 과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제 동시성을 처리하는 방법이나, 여러가지 구조들, 메서드 네이밍등 다양한 부분들에서 문제점을 가졌다.2. 시도 - 문제를 해결하기 위해 어떤 시도를 하셨나요?1. 관련 서적들이나 읽기2. 현업자 멘토링분에게 코칭받기3. 시간이걸리지만 하나하나 생각해가면서 직접 짜보기3. 해결 - 문제를 어떻게 해결하셨나요? 많은 고민들을 하고있고, 더 성장해 나갈 것이다.4. 알게된 것 - 문제를 해결하기 위해 시도하며 새롭게 알게된 것은 무엇인가요? Domain과 Entity를 따로 두는 이유는 Domain과 Entity를 하나로 쓸 경우 DB에서 가져오는 Entity에서 함수를 넣고 바로 사용해야 한다는 점과, Domain에서 DB에서 가져오는 모든 속..

반응형