es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: DATA-SYNCHRONIZATION

¿Notificar una variable de condición garantiza la activación de un hilo con una condición/predicado exitoso si existe alguno?

La información que he encontrado en cppreference es vaga al respecto, así que estoy preguntando aquí. Digamos que tengo dos hilos esperando en una condición, uno con un predicado verdadero y el otro con uno falso (por ejemplo, condition.wait(lock, [=]{ return some_condition; })). El hilo principal decide notificar aleatoriamente a . . . Read more

Programa sencillo en C con pthreads – Pregunta de sincronización. #include #include #include #define NUM_THREADS 2 int count = 0; pthread_mutex_t mutex; void* increment_counter(void *thread_id) { pthread_mutex_lock(&mutex); count++; printf(“Hilo %d incrementó el contador a %d\n”, *(int*)thread_id, count); pthread_mutex_unlock(&mutex); pthread_exit(NULL); } int main() { pthread_t threads[NUM_THREADS]; int thread_ids[NUM_THREADS] = {1, 2}; pthread_mutex_init(&mutex, NULL); for (int i = 0; i < NUM_THREADS; i++) { int rc = pthread_create(&threads[i], NULL, increment_counter, (void*)&thread_ids[i]); if (rc) { printf("Error al crear el hilo %d\n", i+1); exit(-1); } } for (int i = 0; i < NUM_THREADS; i++) { pthread_join(threads[i], NULL); } pthread_mutex_destroy(&mutex); printf("El contador final es: %d\n", count); pthread_exit(NULL); } Este programa sencillo en C utiliza pthreads para incrementar un contador de forma sincronizada. Se utiliza un mutex para asegurar que cada hilo accede al contador de manera exclusiva. Cada hilo incrementa el contador en uno y muestra el resultado por pantalla. Finalmente, se muestra el valor final del contador después de que todos los hilos hayan terminado.

Tengo este programa sencillo de C que utiliza pthreads. Básicamente, quiero llamar a my_function() una vez que esté 100% seguro de que my_thread() se llama y se ejecuta. Necesito saber cómo sincronizar la función main() y la función my_thread(). Por favor, tenga en cuenta que my_thread() nunca retorna. #include <stdio.h> . . . Read more

Sincronizar en dos objetos de tipo String.

Encontré respuestas solo para la sincronización en un objeto String, pero no para dos. No es una tarea real, sino una tarea asignada. Tengo una biblioteca llamada SomeLibrary que transfiere dinero de una cuenta a otra. No puedo acceder al objeto de Cuenta para bloquearlo. Solo puedo usar SomeLibrary.transfer(String from, . . . Read more