4D v16.3Processos |
||
|
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.
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:
Pode ser apagado um processo sobre as seguintes condições. As primeiras condições são automáticas: 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: Os elementos de interface são os seguintes: Notas:
Os elementos de dados se referem aos dados da base. Estes são os seguintes: 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.
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:
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
|
PROPRIEDADES
Produto: 4D
HISTÓRIA
ARTICLE USAGE
Manual de linguagem 4D ( 4D v16) |