Esta es la pregunta más frecuente durante las entrevistas. En esta publicación discutiremos las diferencias entre hilo y proceso. Debes haber escuchado estos términos mientras leías Java multithreading, ambos términos están relacionados entre sí. Tanto los procesos como los subprocesos son secuencias de ejecución independientes. La principal diferencia es que los subprocesos (del mismo proceso) se ejecutan en el espacio de memoria compartida, mientras que los procesos se ejecutan en espacios de memoria separados. Veamos las diferencias en detalle:
Discusión vs juicio
1) Un programa en ejecución a menudo se denomina proceso. Un hilo es un subconjunto (parte) del proceso.
2) Un proceso consta de varios subprocesos. Un subproceso es una parte más pequeña del proceso que puede ejecutarse simultáneamente con otras partes (subprocesos) del proceso.
3) A veces se hace referencia a un proceso como una actividad. A menudo se hace referencia a un hilo como un proceso ligero.
4) Un proceso tiene su propio espacio de direcciones. Un hilo usa el espacio de direcciones del proceso y lo comparte con los otros hilos de ese proceso.
5)
Per process items | Per thread items ------------------------------|----------------- Address space | Program counter Global variables | Registers Open files | Stack Child processes | State Pending alarms | Signals and signal handlers | Accounting information |
6) Un hilo puede comunicarse directamente con otros hilos (del mismo proceso) usando métodos como esperar (), notificar (), notificar a todos (). Un proceso puede comunicarse con otro proceso usando comunicación entre procesos.
7) Se crean fácilmente nuevos hilos. Sin embargo, la creación de nuevos procesos requiere duplicar el proceso principal.
8) Los subprocesos tienen control sobre otros subprocesos en el mismo proceso. Un proceso no tiene control sobre su proceso hermano, solo tiene control sobre sus procesos secundarios.