Auf Thema antworten

Zwei Fehler:

- deine Semaphore Variable `sem` ist aktuell eine Instanzvariable/ein Instanzfeld, somit bekommt jede ConcurrentTask Instanz seine eigene Semaphore-Instanz, was nichts bringt, weil ja jetzt beide Threads/Tasks nicht mehr auf dasselbe Objekt synchornisieren. Also entweder du wandelst das Feld in ein statisches Feld um, damit auch beide ConcurrentTask-Instanzen auf dieselbe Semaphore synchronisieren, oder aber du gibst beiden Threads im Konstruktoraufruf dieselbe ConcurrentTask Instanz (instanziierst diese also nur einmal).

- die Methoden, die du auf der Semaphore verwenden solltest, sind acquire() (oder acquireUninterruptibly()) und release()



Oben