본문 바로가기
[Effective Objective-C] #45 스레드 안전한 단일 시간 코드 실행은 dispatch_once 를 이용하라 [Effective Objective-C] #45 스레드 안전한 단일 시간 코드 실행은 dispatch_once 를 이용하라 출처 : Effective Objective-C -싱글턴 디자인 패턴은 보통 shared instance 라는 클래스 메서드를 통해 구현된다.이는 매번 새로운 인스턴스를 할당하는 대신 클래스의 싱글턴 인스턴스를 반환한다.@implementation EOCClass + (id)sharedInstance{ static EOCClass *sharedInstance = nil; @synchronized(self){ if ( !sharedInstance){ sharedInstance = [[self alloc] init]; } }} @end -싱글턴의 화재는 스레드 안전에 대한 것이다.싱글.. 2017. 10. 10.
[Java Concurrency] 구성 단위 #2 [Java Concurrency] 구성 단위 #2 5.4. 블로킹 메소드, 인터럽터블 메소드 - 스레드는 여러 가지 원인에 의해 블록 당하거나, 멈춰질 수 있다. 스레드가 블록되면 동작이 멈춰진 다음 블록된 상태(BLOCKED, WAITING, TIMED_WAITING) 가운데 하나를 갖게 된다. 블로킹 연산은 단순히 실행 시간이 오래 걸리는 일반 연산과는 달리 멈춘 상태에서 특정한 신호를 받아야 계속해서 실행할 수 있는 연산을 말한다. ( I/O 작업 끝나기를 기다리거나, 기다리던 락을 확보하거나, 다른 스레드의 작업 결과를 받아오는 등의 신호 ) - Thread 클래스는 해당 스레드를 중단시킬 수 있도록 interrupt 메소드를 제공하며, 해당 스레드에 인터럽트가 걸려 중단된 상태인지를 확인할 수 .. 2017. 4. 21.
[Effective Java] 비트(bit) 필드 대신 EnumSet 을 사용하자. [Effective Java] 비트(bit) 필드 대신 EnumSet 을 사용하자. - 보통 비트 값을 constant 로 사용할 때 아래와 같이 int enum 패턴을 사용하여 각 상수에 2의 n승을 대입한다. // 비트 필드 public static final int STYLE_BOLD = 1 2016. 12. 26.
반응형