Articles of multithreading

Mapa Java: malabarista multithreading

Eu enfrentei os próximos problemas: Eu tenho muitos leitores e escritores asynchronouss. O jdk tem alguma implementação que forneça segurança de thread para o meu caso? Pelo que entendi ConcurrentHashMap não é apropriado para a situação quando há muitos escritores asynchronouss. Se eu precisar sincronizar dois mapas concorrentes entre si, posso conseguir isso sem a […]

Reproduzindo apenas um arquivo mp3 em um encadeamento usando o JLayer no java issue

Eu estou trabalhando em um player de áudio, que é escrito em Java com GUI. Para tocar os arquivos mp3, escolhi a biblioteca JLayer do javazoom porque vi que ela é muito popular e usada. Eu fiz a GUI, conseguiu reproduzir o arquivo mp3 selecionado da lista de reprodução. Meu problema é que, se eu […]

Fragmentos de tarefas em segundo plano e “Não é possível executar essa ação após onSaveInstanceState”

Eu tenho o seguinte AsyncTask em um fragment (o exemplo é simplificado para mostrar claramente o erro): private class LoginTask extends AsyncTask { @Override protected Void doInBackground(Void… params) { // Do network login return null; } @Override protected void onPostExecute(Void result) { FragmentActivity act = (FragmentActivity) getActivity(); if (act != null && isAdded()) { act.getSupportFragmentManager().beginTransaction() […]

Android download mais rápido de arquivos com multi-thread

Estou trabalhando em um aplicativo que requer o download de grandes arquivos de vídeo (300-500MB). Eu gostaria de saber se há uma maneira de acelerar o download de um único arquivo usando multi-threading. Eu vi esse tipo de implementação em aplicativos como o TubeMate, mas não conheço o código usado para alcançá-lo. Eu não preciso […]

Por que não há ConcurrentModificationException quando uma thread iterando (usando o Iterator) e outro thread modificando a mesma cópia de ArrayList que não é thread-safe

Algum fundo: Quando uma coleção é iterada usando Iterator então pode java.util.ConcurrentModificationException porque sob os capuzes quando o object Iterator é criado, então a contagem de modificação ( modCount ) da coleção ou ArrayList é capturada e em cada iteração usando Iterator.next() é verificada se modCount foi alterado, em caso positivo, em seguida, lance java.util.ConcurrentModificationException […]

Tópico em segundo plano Java

Eu gostaria de saber a melhor forma de implementar um plano de fundo para executar algumas tarefas. Com base em algumas condições dentro das tarefas, ele terminará e retornará um estado ao chamador. Além disso, enquanto o thread em segundo plano está em execução, ele não deve impedir que o thread de chamada espere sua […]

O que é o LifeCycle de Thread em Java?

Em java quando criamos um object de thread Thread t1 = new Thread(Runnable object); t1.start(); Quais são os diferentes estágios do ciclo de vida do thread t1 e após a execução do run() será o estado de t1 ?

O deadlock acontece por método ou por class?

Imagino que tenho Classe First com vários methods sincronizados. Quando um thread bloqueia a class First , ele bloqueia por método ou por class? Por exemplo, o deadlock acontece para o código a seguir? public class DeadLockQuestion { public static class First{ public synchronized void a(){ } public synchronized void b(){ } public synchronized void […]

Biblioteca JACOB falha quando usada em vários encadeamentos

Eu tenho um problema estranho usando JACOB de dois threads idênticos, consequentemente iniciados. Eu tenho uma class de utilitário que usa um campo estático ActiveXObject para despachar várias solicitações para o WMI. O primeiro segmento funciona bem. Quando o segundo thread é iniciado, recebo a seguinte exceção: com.jacob.com.ComFailException: Can’t map name to dispid: ExecQuery at […]

Logging misturado | log4j

Vi algum registro estranho em nossos logs de aplicativos. Estamos usando o log4j. O log4j permite imprimir logs que estão entrelaçados no tempo. Quero dizer, como temos primeiro o log com timestamp dizer 16:10:30 e, em seguida, log ter timestamp 16:10:25. Mesmo se eles estão sendo impressos por thread diferente. Isso não é um comportamento […]