Tengo una Manager
que maneja un par de FileSystems
(mi propia abstracción). Es posible que uno de ellos FileSystems
no recibe datos durante un tiempo, por lo que me gustaría mantenerlo al mínimo. Cuando los datos son finalmente recibidos por el Manager
, debe despertar la respectiva inactivo FileSystem
. En este momento estoy usando wait()
y notify()
y obtener los resultados que quiero.
Sin embargo, todo el punto de ralentí una FileSystem
era para consumir menos recursos. Me preguntaba si puede ser mejor simplemente interrupt()
la Thread
continuación, crear uno nuevo cuando es el momento para activar un FileSystem
(podría tener minutos diez o más por nuevos datos entren en)? No se espera todavía cerdo recursos?
Aquí está la configuración de mi Runnable
.
public class FileSystem implements Runnable
{
public FileSystem()
{
// do stuff
startTimer()
}
@Override
public void run()
{
while (!Thread.currentThread().isInterrupted())
{
// do stuff
}
}
//public void startTimer()
//{
// new Thread(new Runnable()
// {
// @Override
// public void run()
// {
// // do something
// }
// }).start();
//}
// other methods
}
Depende. Si la operación de lectura crear gran cantidad de recursos y sucede muy a menudo entonces es mejor para la espera de archivo. Pero si el hilo de lectura es ligero y se encuentra inactivo mucho, a continuación, crear una mejor nuevo hilo.