Kann ich einen thread in einen thread in java?

In Java habe ich die Notwendigkeit der Implementierung einer Klasse, die Sie erweitert-Thread
in einer anderen ähnlichen Klasse. Ist das möglich?

Ein Beispiel, was ich versuche zu tun, ist die folgende (vereinfachte) Ausschnitt:

//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
        }
    }
}

Den zweiten Thread implementiert wird direkt in die Erste.
Außerdem würde ich gerne wissen, ob die Implementierung einer Mutex-wie das funktionieren wird.
Wenn nicht, gibt es keine bessere (standard -) Weg, es zu tun?

Vielen Dank im Voraus.

  • Das ist nicht Inception.
  • ..Wie kann man sicher wissen?
  • Alle threads gestartet, die von anderen threads, das Sie keine Wahl haben. Threads sind für die Arbeit so unabhängig wie möglich.
  • Außer für die Big-Bang, die erstellt der erste Thread. 🙂
InformationsquelleAutor 2dvisio | 2012-06-19
Schreibe einen Kommentar