본문 바로가기
[Effective Objective-C] #52 NSTimer 가 타깃을 리테인한다는 사실을 기억하라 [Effective Objective-C] #52 NSTimer 가 타깃을 리테인한다는 사실을 기억하라 출처 : Effective Objective-C -NSTimer 클래스는 절대 날짜(absolute date)와 시간 또는 주어진 시간 뒤에 실행되도록 스케줄될 수 있다.타이머는 또한 반복할 수 있다.그렇기 때문에 얼마나 자주 발생시켜야 할지 정의하는 반복 주기(interval)이 있다.예를 들어 리소스를 5초마다 폴링하기 위해 타이머를 사용할 수 있다. -타이머는 실행 루프(run loop)와 연관되어 있다.실행 루프는 타이머가 이벤트를 발생시켜야 할 때를 다룬다.타이머를 생성할 때 현재 실행 루프에 스케줄 된 상태로 생성할 수 있다.또는 타이머를 생성하여 직접 실행 루프에 스케줄시킬 수도 있다.어떤.. 2017. 10. 20.
[Java Concurrency] 스레드 안전성 [Java Concurrency] 스레드 안전성 - 스레드에 안전한 코드를 작성하는 것은 근본적으로는 상태, 특히 공유되고 변경할 수 있는 상태에 대한 접근을 관리하는 것이다. - 공유된 상태에 대한 접근을 동기화해야 한다는 원칙에 "특별한" 경우의 예외가 있다고 생각하고 싶겠지만, 그런 유혹은 버려야 한다. - 만약 여러 스레드가 변경할 수 있는 하나의 상태 변수를 적절한 동기화 없이 접근하면 그 프로그램은 잘못된 것이다. 이렇게 잘못된 프로그램을 고치는 데는 세 가지 방법이 있다. 1. 해당 상태 변수를 스레드 간에 공유하지 않거나 2. 해당 상태 변수를 변경할 수 없도록 만들거나 3. 해당 상태 변수에 접근할 땐 언제나 동기화를 사용한다. - 스레드 안전성을 확보하기 위해 나중에 클래스를 고치는 것.. 2017. 4. 14.
반응형