목록Swift/스위프트 정리 (18)
study record
DispatchSemaphoreAn object that controls access to a resource across multiple execution contexts through use of a traditional counting semaphore.전통적인 카운팅 세마포어의 사용을 통해 다양한 실행 컨텍스트들에서의 접근을 통제하는 객체이다.class DispatchSemaphore : DispatchObject 디스패치 세마포어는 전통적인 카운팅 세마포어의 효율적인 구현이다. 디스패치 세마포어는 호출 스레드를 차단해야 할 때만 커널을 호출한다. 호출 세마포어가 차단될 필요가 없으면 커널 호출이 이루어지지 않는다. 세마포어 카운트를 증가시키려면 signal() 메서드를 호출하고, 세마포어 카운트..
큐에 작업들을 넣기 전에, 어떤 큐를 사용할 것이고 사용하기 위한 목적을 결정해야 한다. Dispatch queues는 직렬적으로 또는 병렬적으로 작업을 실행할 수 있다. 게다가, 만약 큐에 특별한 목적을 가진다면 큐의 속성들을 설정할 수 있다. 아래의 글을 통해 어떻게 dispatch queue를 만들고 사용을 위한 설정을 할 수 있는지를 보여준다. Getting the Global Concurrent Dispatch Queues concurrent dispatch queue는 병렬적으로 실행할 다양한 작업들을 가지고 있을 때 유용하다. concurrent queue는 여전히 선입선출로 작동하는 큐이다. 다만, concurrent queue는 이전 작업이 끝나기 전에 추가적 작업이 빠져나올 수 있다. ..
본 글은 해당 링크(공식 사이트) 글을 해석하여 정리한 글입니다. Grand Central Dispatch (GCD) dispatch queues는 테스크들을 수행하는 데에 강력한 툴이다. Dispatch queues는 호출자를 존중하며 비동기적으로나 동기적으로 코드의 블록들을 실행하게 한다. dispatch queues를 분리된 스레드에 수행하게끔 사용할 수 있다. dispatch queues의 장점은 사용하기에 단순하고 효율적이라는 것이다. 이 챕터에서는 dispatch queues에 소개와 어플리케이션에서 일반적인 테스크를 실행하고자 할 때 어떻게 사용하는지를 담고 있다. 만약 존재하는 스레드 코드를 dispatch queues로 바꾸고 싶다면, 추가적인 팁을 Migrating Away from T..
고차함수란? 다른 함수를 인자로 전달받거나 실행 결과를 함수로 반환하는 함수. map func map(_ transform: (Self.Element) throws -> T) rethrows -> [T] 시퀀스의 값들을 주어진 클로저에서 맵핑하여 그 결과를 포함하는 배열을 리턴한다. Return 값 : 시퀀스의 변형된 값들의 배열. Parameter : 맵핑 클로저. let cast = ["Vivien", "Marlon", "Kim", "Karl"] let lowercaseNames = cast.map { $0.lowercased() } // 'lowercaseNames' == ["vivien", "marlon", "kim", "karl"] let letterCounts = cast.map { $0.co..