En Linux, las discusiones se implementan en términos de procesos. En otras palabras, los hilos son en realidad solo un fork()
con la mayoría de memoria compartida, en lugar de la memoria completamente de escritura. Lo que esto significa es que cuando usa fork()
en un hilo (principal u otro), termina copiando todo el espacio de memoria compartida de todos los hilos, y el almacenamiento específico de hilo del hilo al que llama fork()
.
Ahora todo esto suena bien, pero eso no significa que esto sea lo que sucederá o funcionará bien. Si desea realizar un proceso clonado, intente hacer una bifurcación antes de iniciar cualquier otra conversación, y luego utilice la memoria virtual de solo lectura para mantener el proceso bifurcado actualizado con los valores de memoria actuales.
Así que, aunque puede funcionar, solo sugiero probar y tratar de encontrar otra manera primero. Y estar preparado para un montón de:
Segmentation fault
@JensGustedt Originalmente, aunque así también, pero esto debe ser más largo de las líneas de una pregunta completa sobre las discusiones y _fork() _ en Linux. – Emanuele