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 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    dnes 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 1
    dnes 01:55 | Humor

    Microsoft zveřejnil zdrojový kód XAML Studia a uvolnil ho pod MIT licencí. XAML Studio je nástroj ze světa Windows, určený pro tvorbu uživatelského rozhraní aplikací pomocí XAML (Extensible Application Markup Language). Stalo se tak zhruba po osmi letech od prvního prohlášení Microsoftu, že se tento kód chystá zveřejnit.

    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 01:44 | Zajímavý projekt

    TimeCapsule, 'časová kapsle', je jazykový model trénovaný výhradně na datech z určitých míst a časových období, aby se tak napodobila autentická slovní zásoba, způsob vyjadřování a názory dané doby. Na Hugging face jsou k dispozici modely natrénované na historických textech dostupných v oblasti Londýna mezi lety 1800 až 1875.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 17:55 | Nová verze

    Radicle byl vydán ve verzi 1.6.0 s kódovým jménem Amaryllis. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Upozornění

    Zemřel Scott Adams, tvůrce komiksových stripů Dilbert parodujících pracovní prostředí velké firmy.

    Ladislav Hagara | Komentářů: 3
    včera 13:00 | Nová verze

    Sdružení CZ.NIC vydalo novou verzi Knot Resolveru (6.1.0). Jedná se o první vydanou stabilní verzi 6, která je nyní oficiálně preferovanou a doporučovanou verzí, namísto předešlé verze 5. Více o Knot Resolveru 6 je možné se dočíst přímo v dokumentaci.

    VSladek | Komentářů: 1
    včera 01:22 | Nová verze

    Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 1
    13.1. 21:33 | Nová verze

    Wine bylo po roce vývoje od vydání verze 10.0 vydáno v nové stabilní verzi 11.0. Přehled novinek na GitLabu. Vypíchnuta je podpora NTSYNC a dokončení architektury WoW64.

    Ladislav Hagara | Komentářů: 5
    13.1. 16:11 | Nová verze

    Byl vydán Mozilla Firefox 147.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Firefox nově podporuje Freedesktop.org XDG Base Directory Specification. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 147 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (8%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (45%)
    Celkem 435 hlasů
     Komentářů: 12, poslední včera 21:12
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: QThread

    Jardík avatar 2.6.2010 00:57 Jardík | skóre: 40 | blog: jarda_bloguje
    QThread
    Přečteno: 394×
    Mám nějaký QThread:
    class MyThread: public QThread
    {
      Q_OBJECT
    protected:
      virtual void run()
      {
        /* blabla */
      }
    };
    
    A nějaký další objekt
    class MyObj: public QObject
    {
      Q_OBJECT
      MyThread *th;
    public:
      MyObj()
      {
        th = new MyThread();
        connect(th, SIGNAL(finished()), SLOT(onThreadFinished()));
        th->start();
      }
      
      ~MyObj()
      {
        if (th)
        {
          th->wait();
          delete th;
        }
      }
    protected slots:
      void onThreadFinished()
      {
        th->wait();
        delete th;
        th = 0;
      }
    };
    
    Dotazy:
    • onThreadFinished() bude zavolán z threadu, kde je vytvořen MyObj?
    • Pokud bude zavolán destruktor objektu dříve, než skončí thread, a já tam zavolám wait() a pak objekt zničím, předpokládám správně, že i když thread signál emitne, tak si při zničení uklidí vyslaný signál do jiného threadu a onThreadFinished() tedy zavolán nebude?
    Věřím v jednoho Boha.

    Odpovědi

    Jardík avatar 2.6.2010 01:01 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: QThread
    A ještě vlastně jeden dotaz. Pokud bych zavolal disconnect až poté, co by thread emitnul signál, ale před tím, než by byl doručen, bude doručen, nebo ne?
    Věřím v jednoho Boha.
    2.6.2010 02:19 Murry | skóre: 16 | Brno
    Rozbalit Rozbalit vše Re: QThread

    onThreadFinished() bude zavolán z threadu, kde je vytvořen MyObj?

    onThreadFinished() bude zavolán pokud metoda MyThread->run doběhne. (Tzn. podle toho co máš za kód u  /* blabla */ )

    Pokud bude zavolán destruktor objektu dříve, než skončí thread, a já tam zavolám wait() a pak objekt zničím, předpokládám správně, že i když thread signál emitne, tak si při zničení uklidí vyslaný signál do jiného threadu a onThreadFinished() tedy zavolán nebude?

    Nejsem si jist, zda-li je to či ono garantováno, v dokumentaci píší (pokud si pamatuji) něco jako že to není doporučeno spíš se má volat deleteLater().

    Jardík avatar 2.6.2010 02:26 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: QThread
    spíš se má volat deleteLater()
    Jenže kdybych zavolal deleteLater(), tak by se mi ta metoda mohla zavolat s neplatným this pointerem (?)... nebo ten objekt odpojí při destrukci signál a ten se pak nezavolá (i když byl už vyslán)?
    Věřím v jednoho Boha.
    6.6.2010 15:46 Murry | skóre: 16 | Brno
    Rozbalit Rozbalit vše Re: QThread
    Neplatný pointer ne-e. Pokud object není platný už neregeruje signál.
    6.6.2010 15:48 Murry | skóre: 16 | Brno
    Rozbalit Rozbalit vše Re: QThread
    Tím "není platný" myslím pokud už není v paměti.
    7.6.2010 17:17 Sten
    Rozbalit Rozbalit vše Re: QThread
    onThreadFinished() bude zavolán z threadu, kde je vytvořen MyObj?

    Ano, sloty běží ve vlákně, ve kterém se nachází příjemce (ve výchozím módu funkce connect, lze změnit parametrem type, viz dokumentace). onThreadFinished je emitováno threadem poté, co opustí metodu run, ale zde zpracováno až poté, co thread objektu MyObj se dostane do event loopu (tzn. opustí metody objektu MyObj).

    Pokud bude zavolán destruktor objektu dříve, než skončí thread, a já tam zavolám wait() a pak objekt zničím, předpokládám správně, že i když thread signál emitne, tak si při zničení uklidí vyslaný signál do jiného threadu a onThreadFinished() tedy zavolán nebude?

    Po vložení signálu do mezi-threadové queue se signál nezruší smazáním objektu, který jej vyslal. onThreadFinished ale nebude doručen, protože bude příjemce zdestruován dříve, než bude možné ten signál doručit.

    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.