Mutex. Sincronización de hilos. Programar en C, Linux

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024
  • Presentación de un problema en el que dos hilos acceden a una variable global para incrementarla y decrementarla. Explicación de por qué no es una operación atómica el incremento y decremento ( se muestra para entenderlo del código generado en ensamblador).
    Solución mediante mutex. Escritura, compilación y ejecución del ejemplo
    Correccion: el mutex debe ser declarado como "static"

Комментарии • 32

  • @marquisgorgeous8811
    @marquisgorgeous8811 4 года назад +8

    Admiro mucho tu trabajo, muchas gracias, he aprendido bastante con tus tutoriales.

  • @agustinlawtaro
    @agustinlawtaro Год назад

    Corríjanme si me equivoco, pero entiendo que aún así los dos hilos compiten por el recurso, es decir hay condición de carrera. La diferencia en el caso del uso de mutex es que el primero que ejecute la línea de bloqueo se "adueña" del acceso. Por eso, aún usando mutex, no podemos asegurar si se realiza primero la resta de 10000 o la suma de 10000. Con semáforos podemos evitar también la condición de carrera. Y para quien preguntó, entiendo que semáforo y mutex se diferencian también en que semáforo permite que cualquier hilo modifique su estado, en cambio mutex tiene ownership, es decir, un único hilo es el que gestiona el acceso.
    Por lo demás, excelente video, muchas gracias! Y muy lindo nombre de canal.

  • @carlosftm1
    @carlosftm1 4 года назад +4

    Excelente! Claro, práctico y directo al punto :-)

  • @Fran_Cisneros
    @Fran_Cisneros 2 года назад +1

    Bien explicado y conciso. Gracias por tu buen trabajo.

  • @lucadelossantos4618
    @lucadelossantos4618 9 месяцев назад

    excelente video, muy bien explicado, si apruebo es gracias a vos !!

  • @danielberistain3603
    @danielberistain3603 Год назад

    Un video muy bien explicado. Me ayudó muchísimo. Muchas gracias, espero puedas retomar este canal que tiene contenido muy bueno. Saludos.

    • @WhileTrueThenDream
      @WhileTrueThenDream  Год назад +2

      Gracias.
      Quiero grabar otro video en breve... A ver si antes de que acabe el año lo hago... Es que no encuentro tiempo, pero me encanta hacerlos porque aprendo un montón
      Saludos

    • @danielberistain3603
      @danielberistain3603 Год назад

      @@WhileTrueThenDream De verdad ya he visto varios videos del canal y en todos he aprendido algo nuevo de una forma muy bien explicada. Te felicito, se nota que te gusta mucho hacerlos jeje.
      Estaré al pendiente de nuevos videos :)
      Gracias por tu respuesta y saludos.

  • @antonioperez1186
    @antonioperez1186 3 года назад +4

    Excelente video, me gustaría saber cual es la diferencia entre MUTEX y semáforo y cuando es mejor usar uno u otro. Saludos

  • @israelperezvicente1747
    @israelperezvicente1747 2 года назад

    Excelente ejemplo, muchas gracias!!!

  • @bim975
    @bim975 3 года назад +1

    Muy bien explicado! Muchas gracias :D

  • @1985stout
    @1985stout 3 года назад

    Gracias por el vídeo, la forma de explicar, me sirvió mucho

  • @cristianandrespezoahenriqu3873
    @cristianandrespezoahenriqu3873 5 месяцев назад

    Gracias Señorita!

  • @joancasals4365
    @joancasals4365 3 года назад

    Muchas gracias por tus videos!

  • @janton84
    @janton84 4 года назад +1

    Excelente! Gracias.

  • @geoforce9669
    @geoforce9669 3 года назад

    Excelente trabajo!

  • @danielm5381
    @danielm5381 2 года назад

    No sé si se ha comentado antes, pero creo que te falta un "return NULL;" para finalizar las dos funciones thread_routine( ){ }. Tal y como la tienes declarada devuelve un puntero de tipo non-void.

  • @josediaz5688
    @josediaz5688 4 года назад +1

    Tus vídeos son geniales, podrías subir vídeo de condicionales tipo cond_wait y demás para mutex? Un saludo!

    • @WhileTrueThenDream
      @WhileTrueThenDream  4 года назад +1

      Hola.
      Gracias por la sugerencia, el tema lo tengo apuntado...me falta el tiempo

  • @OlxackoGameruser
    @OlxackoGameruser 7 месяцев назад

    señora madre. gracias

  • @PabloPerdomoFing
    @PabloPerdomoFing 4 года назад

    Gracias. Por el vídeo.

  • @steelseries8862
    @steelseries8862 3 года назад +1

    Muy buen video. Tengo un problema, siempre se ejecuta un hilo, termina y comienza el siguiente, por lo tanto sin utilizar el mutex igualmente el count termina en 10. El código lo tengo idéntico al del video. Puede ser que tenga algo que ver el planificador? Lo probé en una maquina virtual con ubuntu y tambien en el Ubuntu que traen los windows10. Gracias!

  • @PabloQ90
    @PabloQ90 3 года назад

    Una consulta, para el caso de los archivos es necesario agregar mutex o con los permisos con los cuales los abro (con fopen por ejemplo) ya es suficiente? Gracias

  • @GuruCheleMG
    @GuruCheleMG 3 года назад +1

    Que diferencia hay en usar semáforos a mutex para sincronizar?

    • @WhileTrueThenDream
      @WhileTrueThenDream  3 года назад

      Hola.
      En el foro stack overflow hay diversas explicaciones y un artículo en lanzado muy interesante.
      Saludos!

  • @carlospascual655
    @carlospascual655 4 года назад

    te felicito por tus videos bien explicados , pero no tengo ni idea de programar y en linux mint soy nuevo, me gustaria aprender a crear un programa y ejecutarlo en mi linux , para asi aprender todo el proceso de incluir ficheros y demas pero no se como, si me pudieras echar un cable o algien que lea este comentario estaria agradecido.

    • @WhileTrueThenDream
      @WhileTrueThenDream  4 года назад +1

      Hola.
      Necesitas un editor de texto, un compilador, gcc , y ver un tutorial de por ejemplo un Hello World y de cómo compilar con gcc desde la linea de commandos. Tambien podrias evitar hacer ésto manualmente usando un IDE tipo eclipse... creo que hice dos tutoriales hace algun tiempo...están en el cabal. Saludos

    • @carlospascual655
      @carlospascual655 4 года назад

      Entiendo y como íntegro todos los archivos y demás para que el programa se habrá y funcione, por ejemplo un chatbot que está muy de moda, y más cosas que quizás en un tutorial podrías explicar, todo completo, gracias por tu atencion

    • @WhileTrueThenDream
      @WhileTrueThenDream  4 года назад +1

      Hola.
      Entiendo q necesitas entonces ver los siguientes trmas:
      -Directivas de preprocesador "include"
      - Como incluir en gcc los archivos .h y librerias
      Estoy ahora preparando un video sobre makefiles, talvez te sirva
      Los chatbos no son mi fuerte...yo me dedico a embedded. ;-)

    • @carlospascual655
      @carlospascual655 4 года назад +1

      Te lo agradezco. Creo que necesito conocer todos los temas para enterder los paso a seguir, que por cierto me es difícil de entender de momento, eres muy atenta a los coment. Gracias de nuevo, no suelo escribir pero me interesa, tener una futura salida laboral el trabajo físico tiene límites, ciao

  • @clasesutnfrc8699
    @clasesutnfrc8699 2 года назад

    00:15 ¿Qué es el mutex?