Duda sobre Threads

20/12/2004 - 10:54 por Noemi | Informe spam
Hola a todos,

me gustaría saber si la ejecución de threads que
responden a solicitudes asincronas (en este caso de
sockets tpc/ip), comparten los mismos valores e
instancias de objetos o por el contrario cada uno tiene
una visibilidad independiente o aislada del estado del
proceso. Si lo comparten, el acceso a métodos y atríbutos
debería protegerse manualmente (implicito en el código,
vamos).

Cualquier info será muy agradecida, respuestas,
hipervínculos, etc.

Muchas gracias.
Saludos.

Preguntas similare

Leer las respuestas

#1 SqlRanger
20/12/2004 - 14:19 | Informe spam
Los theads no están aislados unos de otros dentro de un mismo proceso. Todos
comparten el mismo espacio de direcciones y pueden acceder a todos los
recursos del proceso simultáneamente. Por eso hay que sincronizar
manualmente el acceso a los recursos compartidos por parte de los threads.
Hay, sin embargo algunas clases en la .NET Framework que son seguras para
subprocesos, esto quiere decir que instancias de estas clases pueden ser
accedidas simultáneamente de forma segura desde varios subprocesos al mismo
tiempo. Estas clases tienen incluido código de sincronización. De todas
formas, estas clases seguras para subprocesos son la excepción. La mayoría
no son seguras para subprocesos por lo que hay que programar de forma manual
la sincronización evitando que se accedan a los objetos varios threads al
mismo tiempo.

Saludos:

Jesús López
MVP


"Noemi" escribió en el mensaje
news:093501c4e679$ef76fb40$
Hola a todos,

me gustaría saber si la ejecución de threads que
responden a solicitudes asincronas (en este caso de
sockets tpc/ip), comparten los mismos valores e
instancias de objetos o por el contrario cada uno tiene
una visibilidad independiente o aislada del estado del
proceso. Si lo comparten, el acceso a métodos y atríbutos
debería protegerse manualmente (implicito en el código,
vamos).

Cualquier info será muy agradecida, respuestas,
hipervínculos, etc.

Muchas gracias.
Saludos.
Respuesta Responder a este mensaje
#2 Tristan
20/12/2004 - 18:03 | Informe spam
En realidad, precisamente la diferencia entre procesos, y
subprocesos (threads) es esa. Los subprocesos, también
llamados procesos ligeros, corren sobre el mismo espacio
de memoria que su proceso padre.

Por lo tanto, si precisamente lo que quieres es que el
códiugo se ejecute de forma independiente, puedes
utilizar procesos (clase Process). Pero debes tener en
cuenta que el hecho de que corran en el mismo espacio
suele tener ventajas. Es mucho más eficiente, y facilita
considerablemente la sincronización y compartición de
datos.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida