4D v16.3

Processos

Página Inicial

 
4D v16.3
Processos

Processos  


 

 

Multitarefa em 4D é a possibilidade de executar simultaneamente várias operações de bases de dados distintas. Estas operações são chamadas processos.

Múltiplos processos equivalem a ter múltiplos usuários trabalhando no mesmo ordenador, cada um trabalhando em sua própria tarefa. Isto significa principalmente que um método pode ser executado como uma tarefa distinta de base de dados.

Esta seção trata os seguintes temas:

  • Criar e apagar processos
  • Elementos de um processo
  • Processos de usuário
  • Processos criados por 4D
  • Processos locais e globais
  • Bloqueio de registros entre processos

Nota: esta seção não cobre processos armazenados. Ver a seção Procedimentos armazenados no Manual de 4D Server.

Há várias formas de criar um novo processo:

  • Execute um método no entorno Desenho depois de selecionar a caixa. Executar em um processo novo na caixa de diálogo Executar Método. O método elegido na caixa de diálogo Executar método é o método processo.
  • Os processos podem ser executado selecionando os comandos de menu. No editor de menus, marque a caixa Iniciar um novo processo. O método associado ao comando de menu é o método processo.
  • Utilize a função New process. O método passado como parâmetro à função New process é o método processo.
  • Utilize a funçãoExecute on server para criar um procedimento armazenado no servidor. O método passado como parâmetro da função é o método processo.
  • Utilize o comando CALL WORKER Se o processo  worker ainda não existir, será criado.

Pode ser apagado um processo sobre as seguintes condições. As primeiras condições são automáticas:

• Quando o método processo termina sua execução
• Quando o usuário sai da base
• É detido o processo com a linguagem utilizando o botão Abortar no Depurador
• Se seleciona KILL WORKER no Explorador de execução

Um processo pode criar outro processo. Os processos não estão organizados hierarquicamente, todos os processos são iguais, e isto é independentemente do processo a partir da qual eles foram criados. Uma vez que o processo “pai” cria um processo “filho”, o processo filho continua sem importar se o processo pai se está executando ou não.

Cada processo contém elementos específicos. Existem três tipos de elementos diferentes em um processo:

Elementos de interface: os elementos necessários para mostrar um processo.
Elementos de dados: informação relacionada com os dados da base.
 Elementos de linguagem: elemento utilizados pelo linguagem ou importantes para o desenvolvimento de sua aplicação.

Os elementos de interface são os seguintes:

Barra de menus: cada processo pode ter sua própria barra de menus atual. A barra de menus do processo do primeiro plano é a barra de menus atual da base.
Uma ou mais janelas: cada processo pode ter várias janelas abertas simultaneamente. Pelo contrário, alguns processos não têm janelas.
Una janela ativa (primeiro plano): ainda que um processo pode ter várias janelas abertas simultaneamente, cada processo só tem uma janela ativa. Para ter mais de uma janela ativa, deve iniciar mais de um processo.

Notas:

  • Processos náo incluem barras de menu como padrão, o que significa que os menu normal de atalho Edit (especialmente cortar/copiar/colar) não estão disponíveis na janela de processos. Quando chamar caixas de diálogo ou editores 4D (editor de formulário, editor de pesquisa [#cmd id="163"/], etc.) de um processo, se quiser que o usuário possa se beneficiar de atalhos de teclado como copiar/colar, precisa assegurar que um menu equivalente a Editar esteja instalada no processo.
  • os processos que se executam no servidor (procedimentos armazenados) não devem conter elementos de interface.

Os elementos de dados se referem aos dados da base. Estes são os seguintes:

Seleção atual por tabela: cada processo tem sua própria seleção atual. A mesma tabela pode ter diferentes seleções atuais em diferentes processos.
Registro atual por tabela: cada tabela pode ter um registro atual diferente em cada processo.

Nota: esta descrição de elementos de dados é válida se os processos são processos globais. Por padrão, todos os processos são globais. Consulte mais a seguir o parágrafo que trata este tema.

Os elementos da linguagem de um processo são os elementos relacionados com a programação em 4D.

  • Variáveis: cada processo tem suas próprias variáveis de processo. Para maior informação ver Variáveis. As variáveis processo somente se reconhecem no marco de seu processo nativo.
  • Tabela por padrão: cada processo tem sua própria tabela por padrão. No entanto, note que o comando DEFAULT TABLE só é uma convenção para programação.
  • Formulários de entrada e saída: os formulários de entrada e saída por padrão podem ser eleitos por programação para cada tabela em cada processo.
  • Conjuntos de processo: cada processo tem seus próprios conjuntos de processo. UserSet e LockedSet são conjuntos de processo. Os conjuntos processo são apagados tão rápido como o método de processo termina.
  • On Error Call por processo: cada processo tem seu próprio método de gestão de erros.
  • Janela do depurador: cada processo pode ter sua própria janela do Depurador.

Os processos usuário são processos que você cria para realizar certas tarefas. Eles compartilham os tempos de equipo com os processos principais. Os processos de conexão Web são os processos usuário.

A aplicação 4D cria igualmente os processos para suas próprias necessidades. Estes são os principais processos criados e administrados por 4D:

  • Processo principal: o processo principal administra as janelas de visualização da interface de usuário.
  • Processo desenho: o processo desenvolvimento administra as janelas e editores do ambiente de Desenvolvimento. Não existe processo desenvolvimento em uma base compilada que não contenha o código interpretado.
  • Processo servidor web: o processo servidor web corre quando a base é publicada na web. Para maior informação ver a seção Configuração web server e gestão de conexão.
  • Processo de gestão da cachê: o processo de gestão de cachê administra as entradas/saídas disco da base. Este processo é criado tão rápido como 4D ou 4D Server são executados.
  • Processo de indexação: o processo de indexação administra os índices dos campos em uma base como processos por separado. Este processo é criado quando um índice é criado ou apagado por um campo.
  • Processo de gestão de eventos: este processo é criado quando um método de gestão de eventos é instalado pelo comando ON EVENT CALL. Este processo executa o método de evento instalado por ON EVENT CALL quando há um evento. O método de evento é o método de processo deste processo. Este processo se executa continuamente, inclusive se nenhum método está em execução. A gestão de eventos funciona também no ambiente Desenho.

A partir de  4D v15 R5 64 bits, 4D permite que crie processos de usuário preemptivos em modo compilado. Em versões anteriores, apenas processos de usuário cooperativos estavam disponíveis.

Quando executar em modo preemptivo, um processo é dedicado a CPU. Gerenciamento de processo é então delegado ao sistema, que pode alocar cada CPU separadamente em uma máquina multi-núcleo. Quando rodar em modo cooperativo, todos os processos são gerenciados pela aplicação pai thread e compartilhar a mesma CPU, mesmo em uma máquina multi-núcleo.

Como resultado, em modo preemptivo, performance geral da aplicação é melhorada, especialmente em máquinas multi-núcleo, já que processos múltiplos (threads) podem realmente ser executados simultâneamente. Entretanto, ganhos reais dependem das operações sendo executados. Em retorno, já que cada thread é independente de outras em modo preemptivo, e não são gerenciadas diretamente pela aplicação, há restrições específicas aplicadas aos métodos que quiser que seja compatível com o uso preemptivo. Adicionalmente, execução preemptiva só está disponível em certos contextos específicos.

Gerenciamento de processos preemptivos é tratada na seção Processos 4D Preemptivos

O alcance dos processos pode ser local ou global. Por padrão, todos os processos são globais.

Na maioria dos casos, você utilizará processos globais. Os processos globais podem realizar toda operação, incluindo acesso e manipulação dos dados.

Os processos locais devem ser utilizados unicamente para operações que não acessam aos dados. Por exemplo, pode utilizar um processo local para controlar os elementos de interface como as paletas flutuantes ou executar um método de gestão de eventos.

Atenção: se intenta acessar aos dados desde um processo local, acessa aos dados por meio do processo principal, e toma o risco de entrar em conflito com as operações realizadas neste processo.

Se especifica que um processo é local por meio de seu nome. O nome de um processo local deve começar pelo símbolo dólar.

4D Server: com 4D Server, o uso de processos locais por parte do cliente para operações que não requerem acesos aos dados permite atribuir ainda mais tempo de processamento a tarefas que requerem o servidor intensamente.

Um registro está bloqueado quando outro processo carregou o registro para o modificar. Um registro bloqueado pode ser carregado por outro processo, mas não pode ser modificado. O registro está bloqueado somente no processo no qual o registro está sendo modificado. Uma tabela deve estar em modo leitura/escritura para que um registro seja carregado desbloqueado. Para maior informação consulte a seção Record Locking.



Ver também 

Métodos
Métodos de projeto
Variáveis

 
PROPRIEDADES 

Produto: 4D
Tema: Processos

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)