という事は承知しています
@synchronized(self) { /* lock is effective inside here only */ }
複数のスレッドがメソッドに同時にアクセスするのを防ぐことができます。したがって、@synchronized{} が使用されている間は、その内部にアクセスすることはできません。
制限された数のスレッドのみを許可することをどうにかして、たとえば、2 つのスレッドまたは 3 つのスレッドのみが同時にメソッドにアクセスできるようにします。
PS: 同期リクエストを送信するメソッドがあり、同期リクエストの送信を一度に最大 3 つに制限したい
@synchronized(self) {
webData = [NSURLConnection sendSynchronousRequest: request returningResponse: &response error: &error];
}