0
사용 사례 :GCD의 시간 제한 잠금 장치입니까?
- 처리되어야 요청이 많이 있습니다.
- 각 요청을 처리하는 데 소요되는 시간은 다양합니다.
- 요청은 동시 처리됩니다 (이제는 글로벌 대기열에 넣은
dispatch_get_global_queue
으로 푸시됩니다). 동일한 클라이언트 바람직 으 - 요청 CA에서 처리 rca1의 예 기적으로 처리되어야 동시에 rca2 개시 처리 전에 완료되어야 rcb1, rcd3, 등이 처리 중입니다.
rca i : 클라이언트로부터의 요청 a. - 요청 처리가 너무 오래 걸리는 경우 (즉,
TIME_OUT
초과) 동일한 클라이언트의 다른 요청이 처리를 시작할 수 있습니다. rca1 처리가 완료되지만when
이 아직 도착하지 않은 경우 차선책이 될 것dispatch_get_global_queue
및 각 클라이언트에 대해 직렬 큐void dispatch_after( dispatch_time_t when, dispatch_queue_t queue, dispatch_block_t block)
를 사용
.
내가 GCD is based on a different paradigm 것을 알고 있어요하지만 GCD에 pthread_mutex_timedlock 또는 lockBeforeDate 또는 Lock.tryLock의 동등한이 5
고객 당 직렬 큐 만족하지 않을 있습니까?
GCD를 사용하여 시간 제한 잠금 기능을 구현하는 방법은 무엇입니까?
Grand Central Dispatch (GCD) Reference
그래,'dispatch_semaphore's가 갈 길입니다. 작업 실행을 기다리는이 특별한 경우에 더 나은 것으로 판명되었으므로 동일한 클라이언트의 많은 요청을 기대하지 않습니다. 작업 제출을 기다리면 복잡성이 증가하거나 제출 스레드가 대기하게됩니다. – user454322