您确定要这样做吗?比如,你想解决什么问题?如果要使用所有内核,请使用线程。如果你想要一个快速的数独求解器,我可以给你一个我写的,见下面的输出。如果您想为自己工作,请继续使用 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