Hola he estado tratando de comprender las diferencias entre los fork y los theread en python :
y entiendo lo siguiente :
-Thread son hilos de un proceso que comparten memoria
- fork , son clones o copias de un proceso
lo que yo intento hacer es varios fork para un proceso y eh visto este pequeño script (fuente :http://goo.gl/kwkXC ) al cual le he agregado un random .. pero no ocurre el random ._.
es decir creo los 7 fork y me devuelve lo mismo , eso me da la siguiente duda "random no es tan random xD" o los fork comparten variables. tambien puede ser que no comprenda algun detalle de los fork ,
de ante mano gracias.
Código Python:
Ver original#! /usr/bin/python
import os
import random
def child():
print 'A new child ', os.getpid( )
print random.random()
print random.randrange(0, 101, 2)
os._exit(0)
def parent():
i=0
while True:
newpid = os.fork()
if newpid == 0:
child()
else:
pids = (os.getpid(), newpid)
print "parent: %d, child: %d" % pids
if i== 7:
break
i=i+1
parent()
resultados :
Código BASH:
Ver original-parent: 8836, child: 8837
A new child 8837
0.773740529819
parent: 8836, child: 8838
42
parent: 8836, child: 8839
A new child 8839
0.773740529819
parent: 8836, child: 8840
42
parent: 8836, child: 8841
A new child 8840
parent: 8836, child: 8842
0.773740529819
42
parent: 8836, child: 8843
A new child 8842
parent: 8836, child: 8844
0.773740529819
42
A new child 8844
0.773740529819
42
A new child 8843
0.773740529819
42
A new child 8841
0.773740529819
42
A new child 8838
0.773740529819
42