Andei lendo por ai…
que geralmente é criada uma thread pra cada cliente no servidor. E que o node.js vem com uma ideia diferente, criando um processo pra cada conexão.
Mas ai dei uma olhada no google e achei isso:
[quote]Podemos então concluir nossa comparação entre processos e threads da seguinte forma:
Processos são peso-pesados
Quando o processo está sendo executado por um processador, ele ocupa espaços de memória e de registro, chamado de contexto;
Cada processo possui um tempo de execução do processador;
A mudança de atenção do processador de um processo é chamado de chaveamento de contexto;
Threads são peso-leves
Threads também precisam dividir entre si o tempo de execução do processador;
O chaveamento de contexto entre threads é muito mais leve, pois as threads compartilham o mesmo contexto de um processo;[/quote]
não entendi mais nada :roll:
Alguem poderia me dar uma luz?
Esse texto é muito confuso. É uma coisa simples:
Threads são também processos que são filhos de um processo pai lançado pelo sistema x. Só isso.
[quote=faeldix]Andei lendo por ai…
criando um processo pra cada conexão.
[/quote]
Cara, pelo menos para o node.js, certamente essa informação é falsa.
Sobre a comparação entre processos e threads, todo processo possui uma ou mais threads de execução, a questão é se você vai criar vários processos onde cada um terá uma thread, ou várias threads dentro do mesmo processo. Usando com certo cuidado, a segunda opção terá mais performance, pois escalonar entre threads do mesmo processo é muito mais rápido do que threads entre processos diferentes. Aliado a isso, threads do mesmo processo poderão compartilhar a mesma heap na memória, sendo desnecessário replicar as informações comuns em todos os processos (caso necessário). Só precisa tomar cuidado com situações como “condições de corrida”, mas existem boas técnicas para tal, como monitores.
Para mais informações, sugiro como bibliografia o livro “Sistemas Operacionais Modernos” do Tanenbaum, leia o capítulo 2.
[quote=CarlosEduardoDantas][quote=faeldix]Andei lendo por ai…
criando um processo pra cada conexão.
[/quote]
Cara, pelo menos para o node.js, certamente essa informação é falsa.
Sobre a comparação entre processos e threads, todo processo possui uma ou mais threads de execução, a questão é se você vai criar vários processos onde cada um terá uma thread, ou várias threads dentro do mesmo processo. Usando com certo cuidado, a segunda opção terá mais performance, pois escalonar entre threads do mesmo processo é muito mais rápido do que threads entre processos diferentes. Aliado a isso, threads do mesmo processo poderão compartilhar a mesma heap na memória, sendo desnecessário replicar as informações comuns em todos os processos (caso necessário). Só precisa tomar cuidado com situações como “condições de corrida”, mas existem boas técnicas para tal, como monitores.
Para mais informações, sugiro como bibliografia o livro “Sistemas Operacionais Modernos” do Tanenbaum, leia o capítulo 2.
[/quote]
No java não tem como trocar informação entre dois processos distintos porque a jvm não compartilha memória(sandbox). Ou tem?