Короткий ответ на ваш вопрос, к сожалению, таков: «Нет, нет средства ОС, которое может обеспечить совместное использование - ничего более легкого, чем процесс».Теоретически это было бы интересным направлением для инструмента статического анализа (например, clang), но я не знаю ни одного такого инструмента сегодня.
Тем не менее, вы внимательно изучили Grand CentralDispatch (также известный как libdispatch) и блоки?
Мой собственный опыт показывает, что GCD и блоки значительно упрощают соблюдение дисциплины, необходимой для параллелизма без совместного использования ресурсов.Вы упомянули выше, что вы «уже знакомы с NSOperation, блоками и т. Д.», Но я бы порекомендовал по-настоящему сесть и изучить, что вы можете с ними сделать.Кроме того, существует множество возможных шаблонов с API диспетчеризации, которые нелегко реализовать поверх абстракций NSBlockOperation / NSOperationQueue, поэтому не бойтесь углубляться в базовые API libdispatch.