Comment suspendre un thread jusqu'à ce qu'une condition devienne vraie sans attente en attente? Par exemple, supposons que je vérifie pour voir siComment suspendre un thread jusqu'à ce qu'une condition devienne vraie sans attente en attente?
playerOne.isWalking()
va être vrai et je veux exécuter un code quand il ne devient vrai. Encore une fois supposons que playerOne est une instance de la classe Player qui a alors la fonction isWalking(). Je n'ai pas accès à ce qui rend isWalking() devenu vrai. Donc, chaque fois que je veux vérifier si isWalking() est vrai, je dois appeler la méthode d'une instance de joueur explicitement. J'ai essayé d'utiliser Wait/Notify dans les blocs synchronisés, mais cela ne fonctionnerait jamais car je devrais avertir manuellement le Thread de se réveiller quand isWalking() devient vrai et je ne sais pas quand il deviendra vrai.
J'ai essayé d'utiliser le modèle d'observateur pour faire de Player une sous-classe d'observable afin que je puisse appeler la méthode de mise à jour quand isWalking() devient vrai mais je ne sais pas encore quand cela se produira.
J'ai même essayé d'utiliser Propertys mais cela ne fonctionnerait pas non plus.
Est-il même possible de vérifier sans attendre-occupé? Constamment interroger et appeler cette fonction pour voir si c'est vrai, alors si c'est vrai, exécutez le code.
Ce fut une mauvaise solution que je fait impliquant occupé en attente:
Bienvenue dans Stack Overflow! S'il vous plaît prenez le [tour] (http://stackoverflow.com/tour), jetez un coup d'œil autour, et lisez le [centre d'aide] (http://stackoverflow.com/help), en particulier [Comment puis-je demander une bonne question?] (http://stackoverflow.com/help/how-to-ask) et [Quels sujets puis-je poser à propos d'ici?] (http://stackoverflow.com/help/on-topic). –