[Kotlin] 코틀린 - 코루틴#8 - 동기화 제어 이 글은 아래 링크의 내용을 기반으로 하여 설명합니다. https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md 또한 예제에서 로그 print시 println과 안드로이드의 Log.e()를 혼용합니다.Shared mutable state and concurrency코루틴은 Dispathcer.Default같은 dispatcher를 이용해서 multi-thread에서 동작이 가능합니다.따라서 공유된 변경가능한 상태에 접근하는 경우 multi-thread가 접근하는 경우 문제가 발생합니다.이를 해결하기 위한 방법은 일반적으로 multi-thread에서 공유 객체에 접근할때와 같은것들도 있고, 코루틴만의 특수한 방법들이 있습니다... 개발이야기/Kotlin 6년 전
Java 8 Lambda를 이용한 Execute around pattern #2 - lock 관리 실행 어라운드 패턴(Execute around pattern)에 대한 두번째 예시 입니다. 먼저 1번글에서는 resource의 명시적인 해제시 해체할 수 있는 틀(try-catch-with-resource)를 만들어 넣고 내부에 인자로 실제 동작해야 할 구문을 넣는 형태를 얘기했었습니다.이때 인자는 당연히 functional interface 입니다. 같은 방법으로 이번에는 lock을 사용하는 방법을 알아봅니다.잠금(lock)의 관리lock은 왜 써야 할까요?저는 사실 synchronized만 쓴 터라 lock의 개념이 무척 궁금했더랍니다.Java5부터 추가된 개념으로 동기화를 좀더 디테일?? 하게 관리하기 위해서 사용합니다. 예를 들면 하나의 함수 블럭을 넘어간다던가, 무작정 lock을 대기하는게 아니.. 개발이야기/Java 7년 전