Ir para conteúdo

Sync e Async, Qual usar?


WhitShS

Posts Recomendados

Olá a todos, gostaria de saber qual a diferença entre o uso do Sync e Async, especificamente em runnables (Não sei se existem outros usos), abordando seus benefícios e malefícios e qual é mais indicado.  

Link para o comentário
Compartilhar em outros sites

22 minutos atrás, WhitShS disse:

Olá a todos, gostaria de saber qual a diferença entre o uso do Sync e Async, especificamente em runnables (Não sei se existem outros usos), abordando seus benefícios e malefícios e qual é mais indicado.  

Acho que depende bastante do que você quer fazer,pois por alta ambos são quase mesma coisa

Link para o comentário
Compartilhar em outros sites

Primeiro, ambos são diferentes, por exemplo, em Async você não pode usar funções do spigot, é mais pro Java mesmo, verificar bancos de dados, etc.

 

Async: Ocorre fora da Main Thread do Spigot, ou seja, não interfere nada in-game, não é possível usar .placeBlock etc

Sync: Dentro da Main Thread, perfeito para dar itens, verificar eventos, etc, Obs: Caso colocar uma verificação em Sync, ela rodará junto com a Main Thread do Spigot, e se eventualmente travar, irá travar todo o servidor, por isso utilizo verificações em banco de dados Async (Tasks que podem levar de 1 a 2 segundos de resposta do banco de dados, por exemplo: MySQL)

Link para o comentário
Compartilhar em outros sites

Em 10/12/2018 em 20:57, Dargoh disse:

Primeiro, ambos são diferentes, por exemplo, em Async você não pode usar funções do spigot, é mais pro Java mesmo, verificar bancos de dados, etc.

 

Async: Ocorre fora da Main Thread do Spigot, ou seja, não interfere nada in-game, não é possível usar .placeBlock etc

Sync: Dentro da Main Thread, perfeito para dar itens, verificar eventos, etc, Obs: Caso colocar uma verificação em Sync, ela rodará junto com a Main Thread do Spigot, e se eventualmente travar, irá travar todo o servidor, por isso utilizo verificações em banco de dados Async (Tasks que podem levar de 1 a 2 segundos de resposta do banco de dados, por exemplo: MySQL)

O dargoh falou basicamente tudo haha.

 

Async ocorre fora da Main Thread do Spigot, ou seja, se você por exemplo usar um laço infinito em Sync o seu servidor ira parar de funcionar na hora

while (true) {

....
}

 

mas se você executar em async não

new Thread(new runnable {
public void run() {
while (true)  { 
....     }        

}

}).start();

vai lagar mas não vai parar de funcionar porque esta em Async

 

Async pode ser usado pra muitas coisas mas não pode ser usado em ipótese alguma em coisas que envolvam Chunks Blocos e Mundos em geral

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...