Software  
 
Conhecimento computador >> Software >> Software Utility >> 
Como o código de um Executivo Cíclico em Java
Um executivo cíclico fornece uma alternativa para escrever um sistema operacional completa, em tempo real. Ele consiste em um loop infinito que contém conjuntos de ações . Cada conjunto é precedida por um período de espera que controla quando o conjunto é a realização de suas ações. O código a seguir fornece um exemplo : while ( true) { //espera 3 secondswait (3000) ;//receber uma mensagem de rede ....... //esperar 2 segundos para a recepção completa da messagewait (2000 ) ;//verificar o conteúdo da mensagem ....... } Esses conjuntos de ações muitas vezes podem ser executados simultaneamente com algum grau de sincronização. Em Java, threads são um mecanismo para a execução de tarefas simultâneas usando pausas para ajudar na sincronização. Instruções
identificar tarefas
1

Selecione um padrão de projeto que está mais próximo dos requisitos de comportamento do aplicativo a ser construído como um executivo cíclica. Certifique-se que o padrão de projeto abrange o conteúdo do loop que compõem o executivo cíclico .
2

emparelhar os comportamentos do padrão de projeto com os requisitos da aplicação . Certifique-se de que cada um dos processos cooperantes , sincronizadas está associada a cada um dos comportamentos descritos no pedido .
3

Identificar os detalhes específicos em Java que compõem cada uma das classes de Tópicos processo da aplicação. Certifique-se de criar uma pausa de sincronização para cada classe de processo de linha para garantir tempo adequado entre os processos e evitar condições anômalas , como corridas . Criar classes de suporte para atuar como buffers de troca de dados entre os processos , como filas , conforme necessário. Crie uma classe de fluxo de log para definir logs de rastreamento a execução de cada segmento do processo .
Organize o pacote
4

Construa uma classe principal executivo cíclico que instancia as classes segmento do processo , aulas especiais de apoio e qualquer outra inicialização necessárias, tais como o seguinte :

classe CyclicExec { void main ( string [ ] args ) public static {//inicializa recursos necessários .......... ........................... //define um segmento classLogStream log ls = new LogStream (); ......... ............................ //inicializa classes de suporte ................. .................... MsgQueue sq = new MsgQueue (....) ; .................. ................... //inicializa aulas segmento do processo ......................... ............ //instanciar o processo Process_1 e definir a sua associada threadProcess_1 p1 = new Process_1 ( ......) ; T_Process_1 = new thread ( p1 ) ;//activar o fio para Process_1try { T_Process_1.start ();} catch ( IllegalThreadStateException e) { //log de ​​um início ruim fio e saída .......................... ........... }}}
5

Adicione ao pacote de cada uma das classes de Tópicos de processo, como mostra o seguinte exemplo :

classe Process_1 estende Tópico {//initializationpublic Process_1 (.... ) {//criar um log para este thread ( P_S é pré- definido log objeto de fluxo ) PrintStream p1_s = p_s.make_it ( Processs_1_Log_File ) ;//inicializa o segmento do processo .. ................................... } .............. ....................... //execução - solicitado pelo início implícito () método usado na principal void run classpublic () {//core loopwhile ( true) processo {//core ..................................... //pausa após a execução de um ciclo do processtry núcleo { sleep ( Process_1_Wait );} catch ( InterruptedException e) { //log uma exceção pausa .......................... ............. }}}}
6

Construir as classes de suporte que definem buffers de mensagens entre threads de processo com os seus métodos de acesso tampão qualificados como sincronizados, como o seguinte exemplo mostra :

byte sincronizado público PushIt (byte ITM) { ................................ ............................. }
7

Construa uma classe especial que define os arquivos de log de ​​rastreamento o comportamento das classes segmento do processo , tais como :

classe LogStream { LogState ;//classe LogStream initializerpublic private boolean (String LogStateIn ) { this.LogState = false ; if ( LogStateIn.equals ("Sim" ) ) this.LogState = true; } //criar um fluxo de log para um filepublic PrintStream make_it (String LogLocation ) { PrintStream this1 ; Cordas este aspecto 2 ; if ( this.LogState ) { este aspecto 2 = new string ( LogLocation );} else { este aspecto 2 = new string (" /dev /null ");} try { this1 = new PrintStream (new FileOutputStream ( este aspecto 2 , true) );} catch (Exception e) { this1 = null ;} retornar this1 ;}}

Test and Deliver
8

Definir uma sequência de cenários de teste para cobrir tanto extrema e condições normais de operação , a fim de aperfeiçoar a sincronização entre os threads do processo .
9

Reveja os registos de rosca processo para certificar-se que as classes de Tópicos processos operados como esperado. Certifique-se de que nenhuma corrida ou condições semelhantes ocorreram .
10

Prepare o pacote de entrega de aplicativos , incluindo a classe ( executável) arquivos para cada um dos tópicos do processo, a classe principal , mensagens de aulas de apoio e log fluxo classe. Incluir os scripts que descarregam e configurar os arquivos de classe , bem como inicializar o diretório onde os arquivos de log de ​​rosca processo devem ser localizados.

Anterior :

Próximo : No
  Os artigos relacionados
·Como configurar o MySQL no XAMPP 
·VoIP Skype Bloqueado 
·Como importar coordenadas no Abaqus 
·ShadowProtect 3 Vs . ShadowProtect 4 
·O que é o InterVideo XPack 
·Como fazer PowerShell portátil 
·Como fazer uma nova entrada de dados para extrair em iM…
·Como Mudar SiteCatalyst para Omniture 
·O que é FailSafe Installer 
·Como instalar um Citrix Transmissão Profiler 
  Artigos em destaque
·Como editar Video Tags 
·Como pintar de ouro no Photoshop 
·Excel Gradebook Tutorial 
·Como enviar uma pasta sobre Skype 
·Os Melhores Anéis Stamina em World of Warcraft 
·Como calcular cargas de neve com Engenharia de Software…
·Como criar um título de gráfico com códigos VBA 
·Como converter de Quicktime para OGGs 
·Como consertar um SQL Server 2008 
·Como posso lidar com & Compare NAS ZIP Arquivos & Java …
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados