Olá pessoal,
Vocês poderiam me explicar porque ocorrem os erros descritos na resposta (posição nula, pula posição)?
No meu entendimento, se as threads estão considerando o mesmo objeto (considero que seja o mesmo endereço na memória), mesmo intercalando a execução das threads, o método add apenas adicionaria a mensagem na próxima posição do arraylist, ou seja, se a thread 1 adicionou na posição 10, ao trocar para a thread 2 será considerada a posição 11 (porque ambas as threads apontam para o mesmo objeto/posição na memória), ou seja, a cada add será verificada a próxima posição a considerar.
Desde já obrigado!
Atte., Elías.