La diferencia entre los subprocesos del sistema Linux y Windows

  

Linux y Windows
los subprocesos, las personas familiarizadas con la programación de WIN32 deben saber que la gestión de procesos de WIN32 es muy diferente de Linux, en Unix Solo existe el concepto de proceso, pero hay un concepto de "hilo" en WIN32, entonces ¿cuál es la diferencia entre Linux y WIN32 aquí? El proceso /hilo en WIN32 se hereda de OS /2. En WIN32, el proceso se refiere a un programa, y ​​el subproceso es una secuencia de ejecución en un proceso. Desde el núcleo, el proceso múltiple de WIN32 no es muy diferente de Linux. El hilo en WIN32 es equivalente al proceso de Linux, que es un código que realmente se está ejecutando. Sin embargo, WIN32 comparte segmentos de datos entre hilos en el mismo proceso. Esta es la mayor diferencia del proceso de Linux. Bajo WIN32, use la función CreateThread para crear un subproceso. A diferencia del proceso de creación en Linux, el subproceso WIN32 no se ejecuta desde la ubicación de creación. En cambio, CreateThread especifica una función y el subproceso comienza a ejecutarse desde esa función. Este programa, como el anterior programa UNIX, imprime 1000 mensajes cada uno por dos hilos. threadID es el número de subproceso del subproceso secundario. Además, la variable global g se comparte entre el subproceso secundario y el subproceso primario, que es la mayor diferencia entre Linux. Como puede ver, el proceso /subproceso de WIN32 es más complicado que Linux. No es difícil implementar un subproceso similar a WIN32 en Linux. Mientras se ejecute la bifurcación, deje que el proceso hijo llame a la función ThreadProc y abra un área de datos compartida para la variable global, pero Bajo el WIN32 no se puede lograr la función de horquilla similar. Así que ahora las funciones de biblioteca proporcionadas por el compilador de C en WIN32 son compatibles con la mayoría de las funciones de biblioteca de Linux /UNIX, pero aún no pueden implementar la bifurcación. Para los sistemas multitarea, es necesario compartir áreas de datos, pero también es un problema que puede causar confusión. En WIN32, es fácil para un programador olvidar que los datos entre subprocesos se comparten. Después de que un subproceso haya modificado una variable. Otro hilo lo modificó, causando un problema con el programa. Pero en Linux, debido a que las variables no se comparten, el programador especifica explícitamente los datos que se compartirán, lo que hace que el programa sea más claro y más seguro. En cuanto al concepto de "proceso" de WIN32, su significado es "aplicación", que es equivalente a exec bajo UNIX.

Copyright © Conocimiento de Windows All Rights Reserved