abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:44 | Komunita

    Vývojáři svobodného 3D softwaru Blender představili (𝕏, Mastodon, Bluesky) nejnovějšího firemního sponzora Blenderu. Je ním společnost Anthropic stojící za AI Claude a úroveň sponzoringu je Patron, tj. minimálně 240 tisíc eur ročně. Anthropic oznámil sponzorství v tiskové zprávě Claude for Creative Work.

    Ladislav Hagara | Komentářů: 0
    dnes 03:55 | Nová verze

    VNC server wayvnc pro Wayland kompozitory postavené nad wlroots - ne GNOME, KDE nebo Weston - byl vydán ve verzi 0.10.0. Vydána byla také verze 1.0.0 související knihovny neatvnc.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 44. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách

    … více »
    Ladislav Hagara | Komentářů: 4
    včera 15:44 | Zajímavý článek

    David Malcolm se na blogu vývojářů Red Hatu rozepsal o vybraných novinkách v GCC 16, jež by mělo vyjít v nejbližších dnech. Vypíchnuta jsou vylepšení čitelnosti chybových zpráv v C++, aktualizovaný SARIF (Static Analysis Results Interchange Format) výstup a nová volba experimental-html v HTML výstupu.

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | Nová verze

    Byla vydána verze R14.1.6 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    včera 12:55 | Komunita

    Jon Seager z Canonicalu včera na Ubuntu Community Hubu popsal budoucnost AI v Ubuntu. Dnes upřesnil: AI nástroje budou k dispozici jako Snap balíčky, vždy je může uživatel odinstalovat. Ve výchozím nastavení budou všechny AI nástroje používat lokální AI modely.

    Ladislav Hagara | Komentářů: 0
    27.4. 23:11 | IT novinky

    Nový ovladač Steam Controller jde do prodeje 4. května. Cena je 99 eur.

    Ladislav Hagara | Komentářů: 2
    27.4. 14:22 | Komunita

    Greg Kroah-Hartman začal používat AI asistenta pojmenovaného gkh_clanker_t1000. V commitech se objevuje "Assisted-by: gkh_clanker_t1000". Na social.kernel.org publikoval jeho fotografii. Jedná se o Framework Desktop s AMD Ryzen AI Max a lokální LLM.

    Ladislav Hagara | Komentářů: 8
    27.4. 04:44 | Komunita

    Ubuntu 26.10 bude Stonking Stingray (úžasný rejnok).

    Ladislav Hagara | Komentářů: 2
    26.4. 22:22 | Nová verze

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.3.0. S experimentální podporou FLTK 1.4. S příkazem dilloc pro ovládání prohlížeče z příkazové řádky. Vývoj prohlížeče se přesunul z GitHubu na vlastní doménu dillo-browser.org (Git).

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (2%)
     (13%)
     (31%)
     (4%)
     (7%)
     (3%)
     (15%)
     (25%)
    Celkem 1449 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: FreeBSD, pthreads a mutexy

    16.11.2010 09:28 chsajarsa | skóre: 16 | blog: V_hlouby_destneho_pralesa | Lovosice(Praha)
    FreeBSD, pthreads a mutexy
    Přečteno: 524×

    Zdravim, mam nasledujici kod kompilovany v FreeBSD 8.0-RELEASE-p4 pomoci g++ -pthread neco.cpp:

    #include <cstdlib>
    #include <iostream>
    #include <pthread.h>
    
    
    
    using namespace std;
    
    int main(int argc, char** argv) {
     pthread_mutex_t mymutex = PTHREAD_MUTEX_INITIALIZER;
     do {
         pthread_mutex_lock(&mymutex);
         std::cout << "Hello!!" << std::endl;
     } while (1);
     
     return 0;
    }

    Pod linuxem vse bezi jak ma (zasekne se na mutexu a zustane deadlock), ale na freebsd se cykluje vypisuje text porad dokola. U multithreadovych programu jede jen jednim threadem. Nevite prosim nekdo co delam spatne ? Diky

    ~ QED ~

    Odpovědi

    16.11.2010 10:54 Radim Kolář | skóre: 11
    Rozbalit Rozbalit vše Re: FreeBSD, pthreads a mutexy
    1. Ve freebsd je to dobre. Kdyz thread vlastni lock tak pri vicenasobnem zamykani nemusi uz cekat. Tuhle vlastnost melo freebsd odjakziva.

    2. Ze vas testovaci program kdyz je spusten vicevlaknove jede jen jednim vlaknem? Vzdyt to je to co se od nej ocekava, prave proto je tam ten mutex aby ty ostatni vlakne nejeli.
    16.11.2010 11:03 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: FreeBSD, pthreads a mutexy
    1. Ve freebsd je to dobre. Kdyz thread vlastni lock tak pri vicenasobnem zamykani nemusi uz cekat. Tuhle vlastnost melo freebsd odjakziva.
    A určitě to má platit i pro pthread? Protože podle Single Unix Specification by se to mělo zablokovat, protože jde o normální mutex (nikoliv rekurzivní).
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    16.11.2010 14:53 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: FreeBSD, pthreads a mutexy
    Tady bych s tim nesouhlasil. Podle me dostupnych informaci je defaultni typ PTHREAD_MUTEX_DEFAULT, ktery podle odkazovaneho materialu:
    If the mutex type is PTHREAD_MUTEX_DEFAULT,
    attempting to recursively lock the mutex results in undefined behaviour.
    Attempting to unlock the mutex if it was not locked by the calling thread results in undefined behaviour.
    Attempting to unlock the mutex if it is not locked results in undefined behaviour.
    To ze v Linuxu je PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL neni mozno ocekavat vsude (a ve FreeBSD to take neplati).
    18.11.2010 11:19 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: FreeBSD, pthreads a mutexy
    Tady bych s tim nesouhlasil.
    A zcela správně ;-). Moje chyba: nějak jsem to nedočetl a předpokládal jsem, že NORMAL je výchozí hodnota vždy.

    Ze zvědavosti (protože jsem to nedokázal najít): ve FreeBSD platí PTHREAD_MUTEX_DEFAULT == PTHREAD_MUTEX_RECURSIVE nebo ten výchozí typ je nějaký speciální?
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    18.11.2010 14:09 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: FreeBSD, pthreads a mutexy
    Tak to presne rict nedokazu, jedine co jsem nasel je kousek ze souboru /usr/include/pthread.h:
    
    /*
     * Mutex types (Single UNIX Specification, Version 2, 1997).
     *
     * Note that a mutex attribute with one of the following types:
     *
     *  PTHREAD_MUTEX_NORMAL
     *  PTHREAD_MUTEX_RECURSIVE
     *
     * will deviate from POSIX specified semantics.
     */
    enum pthread_mutextype {
        PTHREAD_MUTEX_ERRORCHECK    = 1,    /* Default POSIX mutex */
        PTHREAD_MUTEX_RECURSIVE     = 2,    /* Recursive mutex */
        PTHREAD_MUTEX_NORMAL        = 3,    /* No error checking */
        PTHREAD_MUTEX_ADAPTIVE_NP   = 4,    /* Adaptive mutex, spins briefly before blocking on lock */
        PTHREAD_MUTEX_TYPE_MAX
    };
    
    #define PTHREAD_MUTEX_DEFAULT       PTHREAD_MUTEX_ERRORCHECK
    
    18.11.2010 14:55 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: FreeBSD, pthreads a mutexy
    Tak podle tohohle (protože PTHREAD_MUTEX_INITIALIZER by měl použít PTHREAD_MUTEX_DEFAULT) by výchozí mutex neměl být rekurzivní, ale pouze error checking a tudíž by ten původní kód měl zamknout mutex (při prvním cyklu) a následné volání by mělo vracet EDEADLK. Je to tak nebo je tam ještě nějaký háček? Dík
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    18.11.2010 15:11 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: FreeBSD, pthreads a mutexy
    Mělo by to tak být. Mělo by to jít snadno poznat tak, že přidáte kontrolu návratové hodnoty.
    18.11.2010 15:36 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: FreeBSD, pthreads a mutexy
    Mělo by to jít snadno poznat tak, že přidáte kontrolu návratové hodnoty.
    To je mi jasný ;-), jen nemám kde si to vyzkoušet a tak se ptám.
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    16.11.2010 11:23 chsajarsa | skóre: 16 | blog: V_hlouby_destneho_pralesa | Lovosice(Praha)
    Rozbalit Rozbalit vše Re: FreeBSD, pthreads a mutexy

    1. Pokud je to tak jak rikate, tak cim muzu zajistit, aby se muj ukazkovy program choval podle ocekavani(tedy stejne jako na linuxu)? Mam ideu,ze budu mit vytvorena vlakna, ktera budou zastavena pomoci toho mutexu. Ja do nich v pripade potreby narvu data (zmenim data v objektu,ktery ma ta fce vlakna predany jako parametr) a vlaknu pustim odemcenim mutexu a po dokonceni operace se vlakno v cyclu zase vrati k tomu zamcenemu mutexu. Chci tak ridit thread pool pro obsluhu site. Tedy:

    Pracovni vlakno:

    for(;;){
     pthread_mutex_lock(&mymutex);
     do_work();
     pthread_mutex_lock(&mymutex);
    }
    

     

    A odemikani pak v jinem vlakne pomoci:

    pthread_mutex_unlock(&mymutex);
    
    ~ QED ~
    16.11.2010 11:32 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: FreeBSD, pthreads a mutexy
    A odemikani pak v jinem vlakne pomoci: pthread_mutex_unlock(&mymutex);
    Nesmíte odemykat mutex v jiném vlákně, než které ho zamklo (resp. ono to možná někde bude fungovat, ale ...).

    Na to, co popisujete, jsou tu podmínkové proměnné, v pthread funkce pthread_cond_wait & spol.
    I am always ready to learn although I do not always like to be taught. (W. Churchill)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.