# concurrency

[WebSocket] synchronized 키워드 없이 사용하기
웹소켓(WebSocket)은 하나의 TCP 커넥션을 통해서 클라이언트와 서버간의 양방향 통신을 지속하게 해주는 프로토콜입니다.제가 실무에서 사용한 용례는 특정 상품의 가격 정보를 나타내는 챠트를 만드는 경우였습니다.종목의 실시간 정보 및 챠트 데이터 혹은 다른 사례로

[iOS][WWDC] Explore structured concurrency in Swift
🐸 어제 Async/await 세션을 보았는데요. Async 함수는 suspend 될 수 있고, suspend 되면 호출한 함수도 suspend 되기 때문에 async 키워드가 붙은 함수를 실행하려면 실행하는 함수가 비동기(Async) 이거나 Async Task

[Concurrency] Redis 이용해보기
분산 Lock을 구현할 때 대표적인 라이브러리Lettucesetnx 명령어를 활용하여 분산 Lock 구현 \- setnx: 데이터베이스에 동일한 key가 없을 경우에만 저장spin lock 방식 \- spin lock: Lock을 획득하려는 쓰레드가 획득 가능한지

[Concurrency] Database 이용해보기
Database를 활용하여 race condition 해결해보기실제로 데이터에 Lock을 걸어서 정확성을 맞추는 방법데이터 변경(update, delete)시에 사용되는 Lock이다. 조회, 변경유형에 관계없이 다른 트랜잭션이 변경될 데이터에 접근하는 것을 모두 차단한

[Concurrency] Synchronized 이용해보기
메서드 선언 부에 synchronized를 붙여주게 되면 해당 메서드는 1개의 쓰레드만 접근이 가능하게 된다.imageSpring의 @Transactional 어노테이션의 동작방식 때문이다.Spring에서는 @Transactional 어노테이션을 이용하면 우리가 만든

[Concurrency] 재고시스템 만들어보기
재고 시스템을 개발할 때 재고가 맞지 않는 문제가 발생할 수 있다.해당 문제를 Synchronized, Database Lock, Redis Distributed Lock을 이용하여 해결해보자mysql 설치 및 실행imagemysql 데이터베이스 생성프로젝트 세팅Sto

Explore structured concurrency in Swift
Swift 5.5에서 새로운 concurrency 제공한다. 구조적 프로그래밍의 장점 위에서부터 아래로 이동한다 block -> Static code이다. Static code란? 블록안에서만 정의되어있어서 안에서만 보이는 것을 말한다. lifetime도 block

멀티스레드 환경에서 여러 concurrent 컬렉션을 함께 사용하기
위의 코드는 맵 객체를 순회하는 중에 해당 객체를 수정하려 시도하기 때문에 ConcurrentModificationException이 발생합니다.상기의 예제는 removeIf같은 메소드를 사용하면 간단하게 해결할 수 있지만, 멀티스레드 환경에서 맵 객체를 공유자원으로

Swift Concurrency Behind the Scenes
이야기할 것 Threading model Synchronization Threading model GCD Swift Concurrency 예시: 피드에서부터 가장 최근의 내용들을 가져오는 화면 GCD queue 사용해서 한다 유저가 최근 뉴스 보는 것을 요청한다.
동시성 문제 해결
pessimistic lockDB에 직접 락(lock)을 거는 방법Spring Jpa 에서 findById 대신에 @Lock 을 사용한 메서드를 사용하면 된다.제일 간편하나 Transaction이 필요하다.optimistic lockversion 처리를 하여 사용하는

동시성(Concurrency) vs 병렬성(Parallelism)
동시성: 각각의 독립적인 작업들을 작은 단위로 나누어 실행함으로 동시에 실행되는 것처럼 보여주는 것, 비동기 방식으로 구현 가능. 병렬성: 한 번에 여러 작업을 병렬적으로 처리, 한 순간에 여러 작업을 같이 실행하는 것
[1]. 동시성 이슈(synchronized)
회사에서 개발 중 발생 했던.. 동시성 문제발생 했던 부분은 게시글 조회수 증가 부분과 좋아요 개수 증감에서 동시성 문제가 발생 했었다.그때 당시에 돌려막기로 어찌어찌 해결 했지만 공부가 필요하다 생각하여 블로그를 찾아봤고아주 좋은 블로그를 발견 했다.해당 블로그에서