En Java tengo la necesidad de implementar una clase que extienda el subproceso dentro de otra clase similar. ¿Es eso posible?¿Puedo ejecutar un hilo dentro de un hilo en java?
Un ejemplo de lo que estoy tratando de hacer es la siguiente (simplificado) fragmento:
// The first layer is a Thread
public class Consumer extends Thread {
// Variables initialized correctly in the Creator
private BufferManager BProducer = null;
static class Mutex extends Object {}
static private Mutex sharedMutex = null;
public Consumer() {
// Initialization of the thread
sharedMutex = new Mutex();
BProducer = new BProducer(sharedMutex);
BProducer.start();
}
public void run() {
int data = BProducer.getData();
///// .... other operations
}
////// ...... some code
// Also the second layer is a Thread
private class BufferManager extends Thread {
Mutex sharedMutex;
int data;
public BufferManager(Mutex sM) {
sharedMutex = sM;
}
public int getData(Mutex sM) {
int tempdata;
synchronized(sharedMutex) {
tempdata = data;
}
return tempdata;
}
public void run() {
synchronized(sharedMutex) {
data = getDataFromSource();
}
///// .... other operations on the data
}
}
}
El segundo hilo se lleva a cabo directamente en el interior de la primera. Además, me gustaría saber si la implementación de un Mutex así funcionará. Si no, ¿hay alguna forma mejor (estándar) de hacerlo?
Gracias de antemano.
Esto no es Inception. – mre
.. ¿Cómo puede estar seguro? – BlackVegetable
Todos los hilos son iniciados por otros hilos, no tiene otra opción. Los hilos son para hacer el trabajo lo más independientemente posible. –