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 18:00 | Bezpečnostní upozornění

    Výrobce hardwarových kryptoměnových peněženek Trezor upozorňuje na bezpečnostní incident u společnosti Brevo, kterou využívá k odesílání newsletterů. Útočník na e-mailové adresy odeslal phishingový e-mail.

    Ladislav Hagara | Komentářů: 0
    dnes 14:33 | Komunita

    Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za srpen 2026. Aplikace XApp mají vlastní webovou stránku xapp-project.org. Představena byl čtečka EPUB s názvem Xepub a kalendář Clockenstein.

    Ladislav Hagara | Komentářů: 0
    dnes 11:44 | Nová verze

    Byla vydána nová verze 3.2.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    dnes 11:33 | Nová verze

    Bylo vydáno Ubuntu 24.04.5 LTS, tj. páté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | Komunita

    Švýcarsko testuje přechod z Microsoft 365 na FOSS, konkrétně balík openDesk (Wikipedie) od německé státní společnosti ZenDiS (Wikipedie), s cílem posílit digitální suverenitu.

    Ladislav Hagara | Komentářů: 9
    dnes 04:22 | Komunita

    V italském městě Pordenone probíhá LibreOffice Conference 2026. Zúčastnit se lze i online.

    Ladislav Hagara | Komentářů: 0
    včera 18:33 | Nová verze

    Svobodný (GPLv3) šachový engine Stockfish (Wikipedie) byl vydán ve verzi 19 (𝕏). Přehled novinek v příspěvku na blogu. Stockfish 19 je o 44 Elo silnější než Stockfish 18.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | Nová verze

    Byla vydána nová verze 1.13.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.

    Ladislav Hagara | Komentářů: 0
    včera 11:11 | Pozvánky

    Organizátoři konference LinuxDays zveřejnili program letošního ročníku a spustili registraci návštěvníků. LinuxDays 2026 se uskuteční 3. a 4. října v areálu ČVUT v pražských Dejvicích, na Fakultě informačních technologií. Těšit se můžete na 70 přednášek a workshopů od 66 přednášejících. Konference bude rozdělena do pěti sálů s různou kapacitou. Vstup na LinuxDays je jako obvykle zdarma, stačí včas vyplnit registrační formulář. Opět je možné si na akci zakoupit oběd, ale je třeba to udělat předem, na místě už to nebude možné.

    Petr Krčmář | Komentářů: 0
    včera 11:00 | Nová verze

    Google Chrome 153 byl prohlášen za stabilní. Nejnovější stabilní verze 153.0.8010.36 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 230 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (4%)
     (21%)
     (29%)
     (7%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2647 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Java Timer - přerušení a znovuspuštění tasku

    dandyg avatar 2.11.2009 17:18 dandyg | blog: dandyg
    Java Timer - přerušení a znovuspuštění tasku
    Přečteno: 1632×
    Můj problém:

    Mám aplikaci ve Swingu, kde je několik samostatných panelů, do kterých periodicky dodávám data. Data dodávám pomocí observable-observer, což skvěle funguje. Zatím periodické provádění zajišťuji pomocí java.util.Timer a java.util.TimerTask.

    V konstruktoru "aplikační" třídy odděděné od TimerTask vytvářím novou instanci Timer a následně provedu schedule(this,0,delay); neboli spouštím periodické opakování metody run z té samé třídy. To také funguje jak má. Nyní bych ale chtěl periodické provádění přerušit a později opět spustit.

    Pokud ale provedu timer.cancel(); a později se znovu pokusím úlohu naplánovat, logicky a zcela očekávaně to skončí IllegalStateException, přesně podle javadoc. Zkusil jsem tedy před opětovným naplánováním vytvořit novou instanci Timer a naplánovat již nad novým timerem, ale problém stále trvá.

    Nemá někdo s tímto zkušenosti. Popřípadě ocením i jiné možnosti opakování úlohy s možným přerušením a znovuspuštěním.

    Řešení dotazu:


    Odpovědi

    3.11.2009 07:39 moira | skóre: 30 | blog: nesmysly
    Rozbalit Rozbalit vše Re: Java Timer - přerušení a znovuspuštění tasku
    Neměl by se spíše cancellnout TimerTask?
    Překladač ti nikdy neřekne: "budeme kamarádi"
    3.11.2009 12:02 msaft | skóre: 7
    Rozbalit Rozbalit vše Re: Java Timer - přerušení a znovuspuštění tasku
    od boku: ScheduledThreadPoolExecutor(1) a setCorePoolSize(0) pro preruseni?
    Řešení 1× (dandyg (tazatel))
    3.11.2009 20:13 razor | skóre: 33
    Rozbalit Rozbalit vše Re: Java Timer - přerušení a znovuspuštění tasku
    Na to zastavení a opětovné spuštění můžeš zkusit použít místo cancel nějakou proměnnou (atomickou) nebo nějaký zámek. Např.
    
             try {
    
                final Lock locker = new ReentrantLock();
                final ScheduledExecutorService scheduler =
                        Executors.newScheduledThreadPool(1);
                final Runnable beeper = new Runnable() {
    
                    public void run() {
                        locker.lock();
                        System.out.println("some job");
                        locker.unlock();
                    }
                };
    
                final ScheduledFuture jobHandler =
                        scheduler.scheduleWithFixedDelay(beeper, 1, 5, TimeUnit.SECONDS);
                 
                TimeUnit.SECONDS.sleep(6);
                System.out.println("zastavujem");
                locker.lock();
                TimeUnit.SECONDS.sleep(12);
                System.out.println("poustime");
                locker.unlock();
                TimeUnit.SECONDS.sleep(12);
                System.out.println("koncime");
                jobHandler.cancel(false);
                scheduler.shutdown();
    
            } catch (InterruptedException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            }
    
    
    
    dandyg avatar 3.11.2009 22:45 dandyg | blog: dandyg
    Rozbalit Rozbalit vše Re: Java Timer - přerušení a znovuspuštění tasku
    To je přesně to, co jsem potřeboval. Díky moc!

    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.