¿Sería mejor para interrumpir () un subproceso inactivo en lugar de esperar () / notify ()?

thelostmachine:

Tengo una Managerque maneja un par de FileSystems(mi propia abstracción). Es posible que uno de ellos FileSystemsno 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 FileSystemera para consumir menos recursos. Me preguntaba si puede ser mejor simplemente interrupt()la Threadcontinuació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
}
Aman Goyal:

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.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=192048&siteId=1
Recomendado
Clasificación