Le sommeil d'un thread jusqu'à ce qu'un événement est assisté, dans un autre thread
J'ai deux threads dans une application Android, l'un est le point de vue le fil, et l'autre est le thread de travail. Ce que je veux faire, c'est que le sommeil le thread jusqu'à ce que le point de vue thread se termine le traitement de la méthode onDraw.
Comment je peux faire cela? est-il attendre le signal ou quelque chose?
Vous devez vous connecter pour publier un commentaire.
Partager un java.lang.Objet entre les deux fils, dont le seul but est d'informer le thread de travail lorsqu'il puisse poursuivre son travail. Chaque fois que le thread de travail arrive à un point où il doit dormir, il fait ceci:
Lorsque le thread termine son onDraw travail, il appelle cela:
Remarque: l'exigence que la vue thread possède le moniteur sur l'objet. Dans votre cas, ce devrait être assez simple à appliquer avec un petit de synchronisation de bloc:
Consulter la javadoc de java.lang.L'objet de ces méthodes (et notifyAll, juste au cas où); ils sont très bien écrit.
Si vous voulez un plus haut niveau concurreny API (avec des choses comme des Obstacles), vous pourriez essayer le rétroportage de la java 5 simultanéité de l'API, qui fonctionne sur java 1.3 et au-dessus, et peut fonctionner sur Android. Les goûts de l'Objet.wait/notify de travail, mais ils peuvent être un peu laconique.
Backport-util-simultanées