Ola para todos.
Bom eu tenho algumas dúvidas quanto a sincronização de thread’s.
Meu professor não é muito bom…
Bom seguinte minha dúvida é a seguinte eu tenho um programa para fazer que é multi usuarios e processos…Com Sockets
Bom minha dúvida esta, eu pensei em criar uma classe que empacotasse um ArrayList e ela tivesse metodos sincronizados…
package wrap;
import java.util.ArrayList;
import java.util.List;
public class WrapList<E>
{
private List<E> list;
public WrapList(List<E> lista)
{
this.list = lista;
}
public WrapList()
{
this.list = new ArrayList<E>();
}
public boolean addIten(E iten)
{
synchronized (this)
{
return list.add(iten);
}
}
public E removeIten(int index) throws IndexOutOfBoundsException
{
synchronized(this)
{
if (index == -1)
{
return this.list.remove(0);
}
else
{
return this.list.remove(index);
}
}
}
public boolean isEmpty()
{
return list.isEmpty();
}
public synchronized boolean contains(E item)
{
return list.contains(item);
}
public void setList(List<E> lista)
{
this.list = lista;
}
public List<E> getList()
{
return this.list;
}
}
Teoriacamente ela serve para empacotar e sincronizar o meu array para evitar erros com minhas threads. Agora veio a dúvida, eu sei que o Vector ele é todo syncronize, então eu estou tendo um trabalho atoa reinventando a roda ou estou ganhando desempenho ou alguma coisa a mais que eu não pensei ?
Quais são as vantagens e desvantagens de eu fazer isso ?
As vezes eu resolvo fazer coisas desnecessárias queria saber se vale a pena fazer isso dai ou não ?