Si está utilizando C/C++, intente utilizar las funciones de subproceso del tiempo de ejecución de C/C++. Si usa el Win32 (u otras funciones que no sean CRT para crear subprocesos) el CRT podría no inicializarse correctamente en el nuevo subproceso, causando todo tipo de problema (puede leerlo aquí: http://www.codeguru.com/forum/archive/index.php/t-371305.html).
Sin embargo, la mayoría de las funciones de subprocesos (en CRT, Win32 o pthread) se basan en la funcionalidad para crear subprocesos, sincronizar subprocesos y destruir subprocesos. En la práctica, esto no siempre es tan fácil de usar.
En el último año, hay una tendencia para ir al enhebrado basado en tareas (bueno, lo llamo así, no sé cuál es el nombre oficial). En lugar de iniciar un hilo y luego ejecutar alguna lógica en él, en el enhebrado basado en tareas crea una tarea y luego le pide a la 'lógica de enhebrado' que ejecute la tarea.
Los sistemas compatibles con esta nueva forma de trabajar con hilos son:
- Visual Studio 2010 (que tendremos que esperar unos días para ello)
- Intel roscado Building Blocks
Visual Studio 2010 incluso tiene (parece) una lógica de depuración especial para depurar las 'tareas paralelas'.
Puede usar Boost.Thread si eso es posible. Funciona igual para todas las plataformas (admite todas las plataformas principales). –
Si está experimentando, la biblioteca POSIX Threads for Windows puede ser muy útil por las razones que menciona. Si desea lanzar un producto, entonces debe considerar si la licencia LGPL es compatible con la forma en que desea lanzar su producto. –