Вы уверены, что хотите это сделать? Мол, какую проблему вы пытаетесь решить? Если вы хотите использовать все ядра, используйте потоки. Если вам нужен быстрый решатель судоку, я могу дать вам тот, который написал, см. Вывод ниже. Если вы хотите работать самостоятельно, используйте GCD;).
Обновление :
Я не думаю, что GCD - это плохо, просто это не очень важно для решения судоку. GCD - это технология привязки событий GUI к коду. По сути, GCD решает две проблемы: причуду в том, как MacOS X обновляет окна, и предоставляет улучшенный (по сравнению с потоками) метод привязки кода к событиям GUI.
Это не относится к этой проблеме, потому что судоку можно решить значительно быстрее, чем может подумать человек (по моему скромному мнению). При этом, если бы ваша цель заключалась в том, чтобы решить судоку быстрее, вы бы хотели использовать потоки, потому что вы хотели бы напрямую использовать более одного процессора.
[bear@bear scripts]$ time ./a.out ..1..4.......6.3.5...9.....8.....7.3.......285...7.6..3...8...6..92......4...1...
[----------------------- Input Data ------------------------]
*,*,1 *,*,4 *,*,*
*,*,* *,6,* 3,*,5
*,*,* 9,*,* *,*,*
8,*,* *,*,* 7,*,3
*,*,* *,*,* *,2,8
5,*,* *,7,* 6,*,*
3,*,* *,8,* *,*,6
*,*,9 2,*,* *,*,*
*,4,* *,*,1 *,*,*
[----------------------- Solution 01 ------------------------]
7,6,1 3,5,4 2,8,9
2,9,8 1,6,7 3,4,5
4,5,3 9,2,8 1,6,7
8,1,2 6,4,9 7,5,3
9,7,6 5,1,3 4,2,8
5,3,4 8,7,2 6,9,1
3,2,7 4,8,5 9,1,6
1,8,9 2,3,6 5,7,4
6,4,5 7,9,1 8,3,2
real 0m0.044s
user 0m0.041s
sys 0m0.001s