A maior rede de estudos do Brasil

Qual a diferença entre processos foreground e background ?


7 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

Um processo foreground é qualquer comando ou tarefa que você executa diretamente e espera que ele seja concluído. Alguns processos em primeiro plano mostram algum tipo de interface de usuário que suporta a interação contínua do usuário, enquanto outros executam uma tarefa e "congelam" o computador enquanto ele conclui essa tarefa.


o processo background não precisa esperar que um processo em segundo plano termine antes de poder executar mais processos. Dentro do limite da quantidade de memória disponível, você pode inserir vários comandos de segundo plano um após o outro.


Quando um processo se torna pronto, ele inicia sua execução em primeiro plano imediatamente, forçando o processador a desistir da execução do processo atual em segundo plano e executar o processo recém-criado por um período predefinido. Este período é geralmente 2 ou mais quanta. Se o processo não for concluído após sua execução em primeiro plano, ele será movido para a lista de espera em segundo plano, onde será executado somente quando a lista de primeiro plano estiver vazia.

Um processo foreground é qualquer comando ou tarefa que você executa diretamente e espera que ele seja concluído. Alguns processos em primeiro plano mostram algum tipo de interface de usuário que suporta a interação contínua do usuário, enquanto outros executam uma tarefa e "congelam" o computador enquanto ele conclui essa tarefa.


o processo background não precisa esperar que um processo em segundo plano termine antes de poder executar mais processos. Dentro do limite da quantidade de memória disponível, você pode inserir vários comandos de segundo plano um após o outro.


Quando um processo se torna pronto, ele inicia sua execução em primeiro plano imediatamente, forçando o processador a desistir da execução do processo atual em segundo plano e executar o processo recém-criado por um período predefinido. Este período é geralmente 2 ou mais quanta. Se o processo não for concluído após sua execução em primeiro plano, ele será movido para a lista de espera em segundo plano, onde será executado somente quando a lista de primeiro plano estiver vazia.

User badge image

Felipe Diniz

Há mais de um mês

A única diferença é que as background threads não determinam a vida do ambiente de execução, elas não seguram uma aplicação rodando e dependem das foreground threads para continuar existindo. Se todas as foreground threads encerrarem, o runtime encerra independente se ainda existe background threads rodando, evidentemente encerrando estas também. E isto tem algumas implicações na maneira com isto é comunicado para a aplicação.

User badge image

Felipe Diniz

Há mais de um mês

Em geral threads costumam rodar em foreground. Este é o default. Apenas quando você roda uma thread que existe em função das outras em foreground é que esta deve ser configurada como backgroundThreads monitoras são um bom exemplo.

 

Essa pergunta já foi respondida por um dos nossos especialistas