Je veux un objet qui peut être créé par n'importe quel thread, mais le moment où un thread appelle myObject.use()
il peut seulement être utilisé par ce fil jusqu'à ce que myObject.release()
soit appelé. Je ne veux pas forcer les développeurs à devoir encapsuler tous les appels de méthodes pour cet objet/classe dans des blocs synchronisés (ce qui, je le sais, pourrait être utilisé pour approximer cette fonctionnalité) car cela risque d'entraîner une mauvaise utilisation de l'objet s'ils oublient d'encapsuler tous les appels de myObject.use()
à myObject.release()
dans le même bloc synchronisé.Existe-t-il un moyen de rendre un objet utilisable uniquement par le premier thread qui accède à une méthode spécifique?
Est-ce possible?
Pourrait-il être fait avec un ReentrantLock
?
Définissez _utilisé par ce thread_. –
On dirait un * objet pool * pour moi. –
@SotiriosDelimanolis Une instance dans un thread appelle les méthodes de l'instance de myObject –