Hallo,
ich habe einen thread programmiert, der aus einer tabelle(extern) seine jobs erhält.
zwischen dem jetzigen und dem nächsten job ist das thread am „schlafen“. rechtzeitig zum
nächsten job ist es wieder „wach“ und erledigt diesen job.
nun muss ich aber noch die möglichkeit berücksichtigen, das ein job in die tabelle
eingegeben wird und dieser job eventuell schon in dem zeitraum erledigt werden muss, in dem
das thread am „schlafen“ ist.
also benötige ich ein mechanismus, der das thread aus seinem schlaf weckt, falls solch ein
job vorliegt.
würde mich über jede antwort sehr freuen!
Vielen Dank
Servus,
ich habe einen thread programmiert, der aus einer
tabelle(extern) seine jobs erhält.
zwischen dem jetzigen und dem nächsten job ist das thread am
„schlafen“. rechtzeitig zum
nächsten job ist es wieder „wach“ und erledigt diesen job.
nun muss ich aber noch die möglichkeit berücksichtigen, das
ein job in die tabelle
eingegeben wird und dieser job eventuell schon in dem zeitraum
erledigt werden muss, in dem
das thread am „schlafen“ ist.
also benötige ich ein mechanismus, der das thread aus seinem
schlaf weckt, falls solch ein
job vorliegt.
es gibt Synchronisationsmechanismen zwischen Threads auf der Basis von wait() und notify().
Dazu brauchst du ein Objekt, über das synchronisiert wird.
Innerhalb des synchronized wartet dein Consumer mit der Methode wait().
Der Producer kann ein paar Daten prodizieren und weckt den Consumer dann mit notify().
Das hat auch den Vorteil, dass der Consumer nur losrennt, wenn auch tatsächlich etwas zum verarbeiten da ist.
Kannst du so etwas bei dir unterbringen?
Dirk