Вы уверены, что хотите этого сделать? Например, какую проблему вы пытаетесь решить? Если вы хотите использовать все ядра, используйте потоки. Если вы хотите быстро решить sudoku, я могу дать вам тот, который я написал, см. Выход ниже. Если вы хотите сделать работу самостоятельно, продолжайте использовать GCD;).
Update:
Я не думаю, что НОД плохо, это просто не очень отношение к задаче решения судоку. GCD - это технология привязки графических интерфейсов к коду. По сути, GCD решает две проблемы: Quirk в том, как MacOS X обновляет окна и предоставляет улучшенный метод (по сравнению с потоками) привязки кода к событиям GUI.
Это не относится к этой проблеме, поскольку судоку можно решить значительно быстрее, чем человек может думать (по моему скромному мнению). При этом, если ваша цель состояла в том, чтобы быстрее решать Sudoku, вы бы хотели использовать потоки, потому что вы хотели бы использовать более одного процессора.
[[email protected] 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
Спасибо! Я думаю, что буду придерживаться моего нынешнего подхода! –