sobre critical sections

21/04/2004 - 21:59 por Owen | Informe spam
Hola:

Como puedo hacer una variable que este este threadsave, es decir que varios
hilos la pueda acceder sin que haya colicion con su lectura y escritura?

anibal.

Preguntas similare

Leer las respuestas

#1 Pedro Luna Montalvo
21/04/2004 - 21:50 | Informe spam
Usualmente sigo el siguiente modelo:

private static object ObjetoDeSincronizacion = new object();

public void CodigoCritico() {
if (entrarSeccionCritica) {

lock (ObjetoDeSincronizacion) {

if (entrarSeccionCritica) {
////////// CODIGO DE SECCION CRITICA
}

}

}
}

entrarSeccionCritica se refiere a alguna condicion que determina si
realmente se deberia ejecutar la seccion critica (nota que hago la misma
verificacion antes y despues del bloque). Si no existe ninguna condicion en
tu caso, pues simplemente omite estas condiciones.


Saludos
Pedro Luna
Gye, Ecu





"Owen" escribió en el mensaje
news:
Hola:

Como puedo hacer una variable que este este threadsave, es decir que


varios
hilos la pueda acceder sin que haya colicion con su lectura y escritura?

anibal.


Respuesta Responder a este mensaje
#2 Owen
22/04/2004 - 01:38 | Informe spam
si pero el codigo esta muy exlicito, pero sin lenguaje de prog, me lo puedes
hacer en C#.

gracias.

"Pedro Luna Montalvo" wrote in message
news:
Usualmente sigo el siguiente modelo:

private static object ObjetoDeSincronizacion = new object();

public void CodigoCritico() {
if (entrarSeccionCritica) {

lock (ObjetoDeSincronizacion) {

if (entrarSeccionCritica) {
////////// CODIGO DE SECCION CRITICA
}

}

}
}

entrarSeccionCritica se refiere a alguna condicion que determina si
realmente se deberia ejecutar la seccion critica (nota que hago la misma
verificacion antes y despues del bloque). Si no existe ninguna condicion


en
tu caso, pues simplemente omite estas condiciones.


Saludos
Pedro Luna
Gye, Ecu





"Owen" escribió en el mensaje
news:
> Hola:
>
> Como puedo hacer una variable que este este threadsave, es decir que
varios
> hilos la pueda acceder sin que haya colicion con su lectura y escritura?
>
> anibal.
>
>


Respuesta Responder a este mensaje
#3 Pedro Luna Montalvo
22/04/2004 - 03:25 | Informe spam
Hmmmpero el codigo si esta escrito en C# :)

La sentencia lock te permite proteger secciones criticas de una forma simple
y elegante.

Al codigo lo unico que le falta es ponerle tu codigo de seccion critica y
listo.

Saludos
Pedro Luna
Gye, Ecu



"Owen" escribió en el mensaje
news:#VPTfF$
si pero el codigo esta muy exlicito, pero sin lenguaje de prog, me lo


puedes
hacer en C#.

gracias.

"Pedro Luna Montalvo" wrote in message
news:
> Usualmente sigo el siguiente modelo:
>
> private static object ObjetoDeSincronizacion = new object();
>
> public void CodigoCritico() {
> if (entrarSeccionCritica) {
>
> lock (ObjetoDeSincronizacion) {
>
> if (entrarSeccionCritica) {
> ////////// CODIGO DE SECCION CRITICA
> }
>
> }
>
> }
> }
>
> entrarSeccionCritica se refiere a alguna condicion que determina si
> realmente se deberia ejecutar la seccion critica (nota que hago la misma
> verificacion antes y despues del bloque). Si no existe ninguna condicion
en
> tu caso, pues simplemente omite estas condiciones.
>
>
> Saludos
> Pedro Luna
> Gye, Ecu
>
>
>
>
>
> "Owen" escribió en el mensaje
> news:
> > Hola:
> >
> > Como puedo hacer una variable que este este threadsave, es decir que
> varios
> > hilos la pueda acceder sin que haya colicion con su lectura y


escritura?
> >
> > anibal.
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Angel J. Hernández M.
22/04/2004 - 15:35 | Informe spam
Dependiendo de la necesidad que tengas... puedes usar
- lock
- Mutex
- Monitor

Cuando trabajes con hilos y deseas sincronizar estos la
manera de hacerlo es mediante de alguno de los métodos
que antes te mencioné además que debes poner a dormir los
hilos que no necesitan realizar ninguna acción esto con
la finalidad de no robarle tiempo de cpu a los otros
hilos.

Saludos

Hola:

Como puedo hacer una variable que este este threadsave,


es decir que varios
hilos la pueda acceder sin que haya colicion con su


lectura y escritura?

anibal.


.

Respuesta Responder a este mensaje
#5 Octavio Hernandez
22/04/2004 - 22:33 | Informe spam
Angel,

En el fondo usar la instrucción lock o la clase Monitor es lo mismo. La
instrucción lock es meramente 'syntactic sugar' construida sobre llamadas a
Monitor.Enter y Monitor.Exit.

Saludos,

Octavio

-

"Angel J. Hernández M." escribió en el mensaje
news:2b4901c4286e$ac7eef10$
Dependiendo de la necesidad que tengas... puedes usar
- lock
- Mutex
- Monitor

Cuando trabajes con hilos y deseas sincronizar estos la
manera de hacerlo es mediante de alguno de los métodos
que antes te mencioné además que debes poner a dormir los
hilos que no necesitan realizar ninguna acción esto con
la finalidad de no robarle tiempo de cpu a los otros
hilos.

Saludos

Hola:

Como puedo hacer una variable que este este threadsave,


es decir que varios
hilos la pueda acceder sin que haya colicion con su


lectura y escritura?

anibal.


.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida