Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako kódu Cyclic Executive v Jave

cyklický výkonný poskytuje alternatívu k písanie full - fúkané , operačný systém v reálnom čase . Skladá sa z nekonečnej slučky , ktorá obsahuje súbory akcií . Každá sada predchádza čakacie obdobie , ktoré riadi, ak súbor je vykonávať svoju činnosť . Nasledujúci kód predstavuje príklad : while ( true ) { //počkať 3 secondswait ( 3000 ) ;//prijímať správy siete ....... //počkať 2 sekundy pre kompletnú recepcii messagewait ( 2000 ) ;//skenovať obsah správy ....... } Tieto akčné sady môžu často bežať súbežne s určitou mierou synchronizácie . V Jave , závity sú mechanizmus pre spustenie súbežných úloh pomocou pauzy na pomoc pri synchronizácii . Návod
identifikovať úlohy
1

Vyberte si návrhový vzor , ktorý je najbližšie k požiadavkám na správanie aplikácie , ktoré majú byť postavené ako cyklický výkonné . Uistite sa , že návrhový vzor pokrýva obsah slučky tvoriaci cyklickú exekutívu .
2

spárovať správanie na návrhovom vzore s požiadavkami aplikácie . Uistite sa , že každý z synchronizovaných , spolupracujúcich procesov je spojená s každým z správanie opísané v žiadosti .
3

Identifikujte Java - špecifické detaily , ktoré tvoria každej z tried procesu tém aplikácie . Uistite sa , že nastavenie synchronizácie pauzu pre každú triedu proces Závit pre zabezpečenie správne načasovanie medzi procesmi a vyhnúť sa anomálne stavy , ako je pretekanie . Vytvorenie podpornej triedy pôsobiť ako výmeny dát vyrovnávacej pamäti medzi procesmi , ako sú fronty , podľa potreby . Vytvorte triedu log toku definovať záznamov o priebehu vykonávaní akéhokoľvek procesného vlákno .
Organizovať balíček
4

Build cyklický výkonnú hlavná trieda , ktorá vytvorí inštanciu triedy procesu Thread , špeciálne triedy podpory a akékoľvek iné požadované inicializácia , ako je napríklad nasledovné :

trieda CyclicExec { public static void main ( String [ ] args ) { //inicializácia potrebné zdroje .......... ........................... //define vlákno log classLogStream ls = nový LogStream ( ) ; ......... ............................ //inicializácia podporných tried ................. .................... MsgQueue sq = new MsgQueue ( .... ) ; .................. ................... //inicializácia vlákno procesu tried ......................... ............ //vytvorenie inštancie procesu Process_1 a definovať jeho pridružené threadProcess_1 p1 = new Process_1 ( ...... ) ; T_Process_1 = new Thread ( p1 ) ;//aktivovať závit pre Process_1try { T_Process_1.start ( ) ; } catch ( IllegalThreadStateException e ) { //log zlý závit Spustenie a ukončenie .......................... ........... } } }
5

Pridať na obale každej z tried procesu tém , ako ukazuje nasledujúci príklad :

triedy Process_1 rozširuje Thread { //initializationpublic Process_1 ( .... ) { //nastavenie protokolu pre toto vlákno ( P_S je dopredu definovaný log objekt typu stream ) PrintStream p1_s = p_s.make_it ( Processs_1_Log_File ) ;//Inicializácia procesu niť .. ................................... } .............. ....................... //prevedenie - budete vyzvaní prostredníctvom implicitného štarte ( ) použitá v hlavnej classpublic void run ( ) { //core loopwhile ( true ) { //core proces ..................................... //pauza po spustení jedného cyklus jadra processtry { spánku ( Process_1_Wait ) ; } catch ( InterruptedException e ) { //log pauzy výnimku .......................... ............. } } } }
6

Build podporné triedy , ktoré definujú buffery správ medzi vláknami procese s jeho vstupná vyrovnávacia metódy kvalifikovať ako synchronizované , ako ukazuje nasledujúci príklad :

verejné synchronizované byte PushIt (byte ITM ) { ................................ ............................. }
7

Postaviť špeciálnu triedu , ktorá definuje súbory protokolu trasovanie správanie procesu tém tried , ako napríklad :

triedy LogStream { private boolean LogState ;//trieda initializerpublic LogStream ( String LogStateIn ) { this.LogState = false ; if ( LogStateIn.equals ( " áno " ) ) this.LogState = true ; } //vytvorí log prúd do filepublic PrintStream make_it ( String LogLocation ) { PrintStream This1 , String This2 , ak ( this.LogState ) { This2 = new String ( LogLocation ) ; } else { This2 = new String ( " /dev /null " ) ; } try { This1 = new PrintStream ( nový FileOutputStream ( This2 , true ) ) ; } catch ( Exception e ) { This1 = null ; } return This1 ; } }

test a doručiť
8

definovať postupnosť testovacích scenárov , ktoré zahŕňajú ako extrémne a normálnych prevádzkových podmienok za účelom upresnenia synchronizácia medzi vláknami procesu .
9

Skontrolujte proces vlákno protokoly , aby sa ubezpečil , že proces tém triedy prevádzkované podľa očakávania . Uistite sa , že žiadne preteky alebo podobné podmienky došlo .
10

Pripravte si balíček pre poskytovanie aplikácií tým , že zahŕňa triedy ( spustiteľný ) súbory pre každú z vlákna procesu , hlavné triedy , zasielanie správ podporu tried a prihlásiť prúd trieda . Zahŕňajú skripty , ktoré sú uvoľnené a nastaviť súbory tried , rovnako ako inicializovať adresár , v ktorom sú súbory protokolu proces závit sa nachádza .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené