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 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 0
dnes 15:51 | Komunita

Mozilla.cz informuje, že nástroje pro webové vývojáře se možná oddělí od Firefoxu a stanou doplňkem. Nástroje pro webové vývojáře prošly velkým přepisem a tým, který se stará o jejich vývoj, by uvítal možnost jejich častějších aktualizacích nezávisle na vydávání nových verzí Firefoxu.

Ladislav Hagara | Komentářů: 0
dnes 07:00 | Humor

Čtenářům AbcLinuxu vše nejlepší k dnešnímu Dni zvýšení povědomí o tučňácích (Penguin Awareness Day).

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Komunita

Bylo spuštěno hlasování o přednáškách a workshopech pro letošní InstallFest, jenž proběhne o víkendu 4. a 5. března v Praze. Současně byla oznámena změna místa. InstallFest se letos vrací zpět na Karlovo náměstí do budovy E.

Ladislav Hagara | Komentářů: 0
dnes 02:48 | Komunita

Greg Kroah-Hartman potvrdil, že Linux 4.9 je jádrem s prodlouženou upstream podporou (LTS, Long Term Support). Podpora je plánována do ledna 2019. Aktuální jádra s prodlouženou podporou jsou tedy 3.2, 3.4, 3.10, 3.12, 3.16, 3.18, 4.1, 4.4 a 4.9.

Ladislav Hagara | Komentářů: 0
dnes 00:11 | Zajímavý článek

Výrobce síťových prvků, společnost Netgear, spustila nový program, který slibuje vývojářům, expertům, ale i běžným uživatelům vyplacení finanční odměny za nalezení bezpečnostních chyby v jejich produktech. Za nalezení zranitelnosti v hardware, API nebo mobilní aplikaci nabízí odměnu od 150 do 15 tisíc dolarů (dle závažnosti).

Michal Makovec | Komentářů: 0
dnes 00:08 | Pozvánky

V sobotu 18. 2. se v Praze v prostorách VŠE uskuteční od 9:30 již 4. ročník největší české konference o open source redakčním systému WordPress (WP) - WordCamp Praha 2017.

… více »
smíťa | Komentářů: 0
včera 23:58 | Komunita

Kryptoměnová komunita zahájila nový rok spuštěním projektu Blockchain.cz, jehož cílem je kolektivně nalézt ideální překlad pro čím dál frekventovanější slovo „blockchain“. Přispět návrhem může kdokoli. Sběr bude trvat až do konce září 2017. Následně bude probíhat dvoutýdenní veřejné hlasování, které bude zakončeno výběrem toho nejlepšího návrhu.

xHire | Komentářů: 8
včera 15:55 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno je celkově 270 bezpečnostních chyb. V Oracle Java SE je například opraveno 17 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 16 z nich. V Oracle MySQL je opraveno 27 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 5 z nich.

Ladislav Hagara | Komentářů: 0
včera 02:48 | Nová verze

Po půl roce od vydání verze 9.0 (zprávička) byla vydána verze 10.0 zvukového serveru PulseAudio. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 31
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (74%)
 (3%)
 (10%)
Celkem 337 hlasů
 Komentářů: 24, poslední 17.1. 10:14
    Rozcestník
    Reklama

    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: 1289×
    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: 32
    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.