Autor
|
Tema: FORK en java (Leído 6,802 veces)
|
reylagarto19
Desconectado
Mensajes: 24
|
Me he estado leyendo las normas del foro, ya que he notado que a los post del tipo "SOS necesito que me hagais el trabajo porque soy un zote y no se hacerlo" no soleis responder mucho y efectivamente como era de preveer esta claro que aqui no venimos a hacerle el trabajo a nadie, sin embargo pone que "preguntas de DUDAS tecnicas" si las soleis resolver en función de su complejidad. Bien, pues hay va mi pregunta, pues tengo una tremenda curiosidad de saber si es posible o no usar algo en JAVA que sea SIMILAR al FORK() de lenguaje C. Pues resultaría interesante en muchas ocasiones poder darle un espacio PROPIO de memoria a un proceso, cosa que con los Threads no se puede, pues comparten memoria. (como veis la teoria me la se ) pero tengo gran curiosidad por saber si esa opcion esta ya implementada en java o no. Un saludo majetes
|
|
|
En línea
|
|
|
|
|
reylagarto19
Desconectado
Mensajes: 24
|
perdon porque quizá no me he explicado bien desde un principio la cosa es la siguiente: Conozco la existencia de JDK 7, y de las clases que muestras en el enlace. Mi duda era saber si alguno las habeis usado ya o si habeis trasteado con ellas para ver si me comentabais si eran equivalentes a un fork() de C. Ademas otra duda que me surge, es si sabeis si el JDK 7 lo hay ya para MAC OX, pues me he vuelto loco a buscarlo y tengo la sensacion de que mi Eclipse tendra que esperarlo, ya que creo que solo lo hay para Windows...
|
|
|
En línea
|
|
|
|
egyware
|
Ahhh disculpa, no había entendido tu pregunta. Entonces yo no puedo responderte a tu pregunta, tendrás que experimentar para ver si es equivalente al Fork.
Ahh una cosa más... Si no mal recuerdo en esas conversaciones que he tenido con compañeros que ya no es muy recomendable usar Fork si no procesos hijos o Threads ya que estos ultimos comparten la memoria del proceso sin tener que crear otro proceso.
Saludos.
|
|
|
En línea
|
|
|
|
ChavalChavito
Desconectado
Mensajes: 43
Y ahora que pasa...
|
Estuve leyendo un poco... fork() crea un proceso hijo identico al padre.. Los applets Java no pueden lanzar ningún proceso en el cliente, porque eso sería una fuente de inseguridad y no está permitido. Las aplicaciones y los applets deben utilizar hilos de ejecución.. Los hilos se distinguen de los tradicionales procesos en que los procesos son –generalmente– independientes, llevan bastante información de estados, e interactúan sólo a través de mecanismos de comunicación dados por el sistema. Por otra parte, muchos hilos generalmente comparten otros recursos de forma directa. En muchos de los sistemas operativos que dan facilidades a los hilos, es más rápido cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro. Este fenómeno se debe a que los hilos comparten datos y espacios de direcciones, mientras que los procesos, al ser independientes, no lo hacen. Al cambiar de un proceso a otro el sistema operativo (mediante el dispatcher) genera lo que se conoce como overhead, que es tiempo desperdiciado por el procesador para realizar un cambio de contexto (context switch), en este caso pasar del estado de ejecución (running) al estado de espera (waiting) y colocar el nuevo proceso en ejecución. En los hilos, como pertenecen a un mismo proceso, al realizar un cambio de hilo el tiempo perdido es casi despreciable. Sistemas operativos como Windows NT, OS/2 y Linux (2.5 o superiores) dicen tener hilos "baratos", y procesos "costosos" mientras que en otros sistemas no hay una gran diferencia.
|
|
|
En línea
|
|
|
|
reylagarto19
Desconectado
Mensajes: 24
|
Muchas gracias por las respuestas, esta claro que tb os sabeis la teoria, jeje.
Solo una cosa mas, a pesar de la inseguridad que se genera con los fork(), en alguna ocasion especifica, no seria interesante poder usar fork() ??
supongamos que tenemos un App concurrente, no seria interesante el poder hacerlo con procesos para darle independencia a cada proceso que se genere y asi su propio espacio de memoria?? (siempre y cuando no haya necesidad de compartir datos entre procesos, en tal caso seria obvio usar Threads)
no se si me he explicado bien... pero el caso es, si yo tengo un App en el que cada hilo necesita "bastante memoria" y ademas no hay "datos compartidos entre hilos" seria mas interesante poder hacer fork(), no?? ademas se dotaria de mas potencia a la App, por ofrecerle mas memoria, no??
o estoy yo en un pensamiento erroneo ??
Gracias chicos!
|
|
|
En línea
|
|
|
|
|
egyware
|
Muchas gracias por las respuestas, esta claro que tb os sabeis la teoria, jeje.
Solo una cosa mas, a pesar de la inseguridad que se genera con los fork(), en alguna ocasion especifica, no seria interesante poder usar fork() ??
supongamos que tenemos un App concurrente, no seria interesante el poder hacerlo con procesos para darle independencia a cada proceso que se genere y asi su propio espacio de memoria?? (siempre y cuando no haya necesidad de compartir datos entre procesos, en tal caso seria obvio usar Threads)
no se si me he explicado bien... pero el caso es, si yo tengo un App en el que cada hilo necesita "bastante memoria" y ademas no hay "datos compartidos entre hilos" seria mas interesante poder hacer fork(), no?? ademas se dotaria de mas potencia a la App, por ofrecerle mas memoria, no??
o estoy yo en un pensamiento erroneo ??
Gracias chicos!
En ese caso llamas otro Proceso (distinto) usando Processs Bueno ahora con respecto a tu pregunta, no tengo que aportar xDDD
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Fork en php
PHP
|
WHK
|
0
|
3,685
|
8 Diciembre 2007, 09:26 am
por WHK
|
|
|
Emular MultiHilos (multithread) Sin Fork (FAKE FORK)
« 1 2 »
PHP
|
OzX
|
14
|
9,512
|
27 Marzo 2009, 00:24 am
por OzX
|
|
|
Crear fork de XFCE
GNU/Linux
|
RakNae
|
3
|
2,918
|
27 Noviembre 2012, 19:04 pm
por portaro
|
|
|
Error en el uso del fork()
« 1 2 »
Programación C/C++
|
nolasco281
|
10
|
4,934
|
5 Abril 2014, 23:39 pm
por nolasco281
|
|
|
fork
Programación C/C++
|
Pirat3net
|
1
|
2,215
|
19 Diciembre 2016, 19:48 pm
por ivancea96
|
|