본문 바로가기
[Java Concurrency] 단일 연산 변수와 넌블로킹 동기화 [Java Concurrency] 단일 연산 변수와 넌블로킹 동기화 - 병렬 알고리즘과 관련한 최근의 연구 결과를 보면 대부분이 넌블로킹 알고리즘, 즉 여러 스레드가 동작하는 환경에서 데이터의 안정성을 보장하는 방법으로 락을 사용하는 대신 저수준의 하드웨어에서 제공하는 비교 후 교환(compare-and-swap) 등의 명령을 사용하는 알고리즘을 다루고 있다. - 넌블로킹 알고리즘은 운영체제나 JVM 에서 프로세스나 스레드를 스케줄링 하거나 가비지 컬렉션 작업, 그리고 락이나 기타 병렬 자료 구조를 구현하는 부분에서 굉장히 많이 사용하고 있다. - 넌블로킹 알고리즘은 락을 기반으로 하는 방법보다 설계와 구현 모두 훨씬 복잡하며, 대신 확장성과 활동성을 엄청나게 높여준다. - 넌블로킹 알고리즘은 훨씬 세밀.. 2017. 5. 9.
[android] Concurrent Database Access [android] Concurrent Database Access https://github.com/dmytrodanylyk/dmytrodanylyk/blob/gh-pages/articles/Concurrent%20Database%20Access.md 새로운 SQLiteOpenHelper 를 만들면, 이것은 새로운 database connection 을 만드는 것이다.다른 connection 에서 동시에 한 db 에 write 를 시도하면, 한쪽은 lock 문제로 fail 한다. 여러 Thread 에서 동시에 db 작업을 할 경우에는 반드시 한 connection 을 사용하도록 유도해야 한다. 이 때 주의할 것은 각각의 thread 에서 db.close() 를 호출할 경우 한 connection 의 ge.. 2014. 8. 17.
반응형