본문 바로가기
[Effective Objective-C] #44 플랫폼 확장의 이점을 얻으려면 디스패치 그룹을 사용하라 [Effective Objective-C] #44 플랫폼 확장의 이점을 얻으려면 디스패치 그룹을 사용하라 출처 : Effective Objective-C -플랫폼 확장이라 함은 CPU 의 다수의 코어를 자동으로 활용하는 이점 -디스패치 그룹은 그룹 작업을 쉽게 할 수 있게 하는 GCD 기능이다.이 기능을 사용해 작업들이 모두 끝나기를 기다리거나 작업들이 모두 끝났을 때 콜백을 통해 알림을 받을 수 있다.이 기능은 몇 가지 이유 때문에 매우 유용하다.이점 중 첫 번째이자 가장 흥미로운 것은 다수의 작업이 병렬로 수행되길 원하고 모든 작업이 언제 끝났는지 알고 싶을 때다. 다음 함수로 디스패치 그룹을 생성할 수 있다.dispatch_group_t dispatch_group_create(); -그룹은 식별자가.. 2017. 10. 9.
[Java Concurrency] 중단 및 종료 #1 [Java Concurrency] 중단 및 종료 #1 - 작업이나 스레드를 안전하고 빠르고 안정적으로 멈추게 하는 것은 어려운 일이다. 더군다나 자바에는 스레드가 작업을 실행하고 있을 때 강제로 멈추도록 하는 방법이 없다. 대신 인터럽트(interrupt)라는 방법을 사용할 수 있게 되어 있는데, 인터럽트는 특정 스레드에게 작업을 멈춰달라고 요청하는 형태이다. 실제 상황에서 특정 스레드나 서비스를 "즉시" 멈춰야 할 경우는 거의 없고, 강제로 종료하면 공유되어 있는 여러 가지 상태가 비정상적인 상태에 놓일 수 있기 때문에 스레드 간의 협력을 통한 접근 방법이 올바르다. 다시 말해, 작업이나 서비스를 실행하는 부분의 코드를 작성할 때 멈춰달라는 요청을 받으면 진행 중이던 작업을 모두 정리한 다음 종료하도록.. 2017. 4. 25.
반응형