Encontré esto: método rápido de sincronización entre procesos Solía creer que un mutex pthread solo se puede compartir entre dos hilos en el mismo espacio de direcciones . La pregunta / respuestas allí parece implicar: Si tengo dos procesos separados A y B. Tienen una región de memoria compartida M. Puedo poner un mutex de […]
Mientras estaba mirando algún código de aplicación heredado noté que está usando un objeto de cadena para hacer la sincronización del hilo. Estoy tratando de resolver algunos problemas de contención de hilos en este progtwig y me preguntaba si esto podría provocar algunas situaciones extrañas. Alguna idea ? private static string mutex= “ABC”; internal static […]
En un lenguaje de bajo nivel (C, C ++ o lo que sea): tengo la opción entre tener un montón de mutexes (como lo que pthread me da o lo que proporciona la biblioteca del sistema nativo) o uno solo para un objeto. ¿Qué tan eficiente es bloquear un mutex? Es decir, ¿cuántas instrucciones del […]
Necesito un poco de ayuda para entender cómo usar las variables de condición en C para resolver un ejercicio. Aquí hay un pequeño ejemplo: #include #include #include #include #include #include #include #include #include #include #define OKTOWRITE “/oktowrite” #define MESSAGE “/message” #define MUTEX “/lock” int main(int argc, char** argv) { pthread_cond_t* condition; pthread_mutex_t *mutex; char* message; […]
Tengo el siguiente código: using (Mutex mut = new Mutex(false, MUTEX_NAME)) { if (mut.WaitOne(new TimeSpan(0, 0, 30))) { // Some code that deals with a specific TCP port // Don’t want this to run at the same time in another process } } Establecí un punto de interrupción dentro del bloque if y ejecuté el […]
¿Hay un C ++ 11 equivalente para el boost::shared_mutex . ¿O alguna otra solución para manejar una situación de lector múltiple / escritor individual en C ++ 11?
He escuchado estas palabras relacionadas con la progtwigción simultánea, pero ¿cuál es la diferencia entre ellas?
En primer lugar, uso la biblioteca pthread para escribir el progtwig C de subprocesos múltiples. Los hilos siempre cuelgan por sus mutexs esperadas. Cuando uso la utilidad strace para encontrar un hilo en estado FUTEX_WAIT , quiero saber qué hilo contiene ese mutex en ese momento. Pero no sé cómo podría hacerlo. ¿Hay alguna utilidad […]
En general, pthread_cond_wait() y pthread_cond_signal() se llaman de la siguiente manera: //thread 1: pthread_mutex_lock(&mutex); pthread_cond_wait(&cond, &mutex); do_something() pthread_mutex_unlock(&mutex); //thread 2: pthread_mutex_lock(&mutex); pthread_cond_signal(&cond); pthread_mutex_unlock(&mutex); Los pasos son pthread_cond_wait(&cond, &mutex); se llama, desbloquea el mutex El hilo 2 bloquea el mutex y llama a pthread_cond_signal() , que desbloquea el mutex En el hilo 1, pthread_cond_wait() se llama […]
¿Alguien puede explicar la diferencia entre: lock (someobject) {} Usando Mutex Usando semáforo Usando el monitor Usar otras clases de sincronización de .Net Simplemente no puedo resolverlo. Me parece que los dos primeros son lo mismo?