Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 12-03-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
La principal diferencia es que el Mutex es un objeto del kernel y la sección crítica no lo es, lo que tiene como efecto que el Mutex sea accesible por distintos procesos, y el "CriticalSection" no;

Cita:
Empezado por http://msdn2.microsoft.com/en-us/library/aa910712.aspx
A critical section object protects a section of code from being accessed by more than one thread. However, a critical section is limited to only one process or DLL and cannot be shared with other processes.
Esto es corroborable con la forma de inicialización de ambos; para crear una sección crítica se utiliza la API InitializeCriticalSection, la cual inicializa una estructura COMPLEJA. Dicha estructura al pertenecer al proceso el cual la ha iniciado no puede ser compartida entre procesos.

Sin embargo la forma de inicialización de un Mutex (mediante la API CreateMutex), es con un nombre único y global en el sistema. Con dicha idea se puede usar el Mutex para tener una única instancia de una aplicación, lo que es imposible con una sección crítica.

Con dicha idea, tenemos una librería dinámica la cual existe para otorgar funciones a las aplicaciones, sin embargo dicha librería puede (por ejemplo) acceder a un recurso que no debe ser accedido a la vez por otro, sin embargo la librería es cargada en esos momentos por otra aplicacion la cual tambien carga dicha librería y (obviamente), intenta bloquear el recurso.

El anterior caso muestra la ineficiencia del CriticalSection entre varios procesos o DLLs.

Finalmente (y puesto me emocioné con el tema), hay otras consecuencias de que dicho objeto sea o no "propiedad" del kernel, como la velocidad de acceso entre uno y otro (el Mutex es más lento).

Sincronización.

Saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:44:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi