Maison >Java >javaDidacticiel >L'utilisation de DelayQueue en JAVA : file d'attente de blocage, file d'attente de retard
DelayQueue est une file d'attente de blocage illimitée à partir de laquelle les éléments ne peuvent être extraits qu'à l'expiration du délai. La tête de la file d'attente est l'élément Delayed qui dure le plus longtemps après l'expiration du délai.
La file d'attente de blocage DelayQueue est également souvent utilisée dans le développement de notre système, par exemple : la conception du système de cache, les objets dans le cache, dépassent le temps d'inactivité, doivent être supprimé du cache Déplacer; le système de planification des tâches peut saisir avec précision le temps d'exécution des tâches. Nous devrons peut-être traiter beaucoup de données urgentes via des threads. Si nous utilisons des threads ordinaires, nous devons parcourir tous les objets et vérifier un par un pour voir si les données ont expiré. Tout d'abord, l'efficacité de l'exécution ne sera pas bonne. trop élevé. Deuxièmement, ce style de conception affecte également grandement l'exactitude des données. Une tâche qui doit être exécutée à 12h00 peut ne pas être exécutée avant 12h01, ce qui présente de plus grands inconvénients pour les systèmes nécessitant des données élevées. À partir de là, nous pouvons utiliser DelayQueue.
Afin d'avoir un comportement d'appel, les éléments stockés dans DelayDeque doivent implémenter l'interface Delayed. L'interface Delayed fait de l'objet un objet retardé, ce qui donne à l'objet stocké dans la classe DelayQueue une date d'activation. Cette interface applique les deux méthodes suivantes.
CompareTo(Delayed o):Delayed接口继承了Comparable接口,因此有了这个方法。 getDelay(TimeUnit unit):这个方法返回到激活日期的剩余时间,时间单位由单位参数指定。
Implémentez l'interface différée
Ce code : Comparez le temps d'exécution après la signature du contrat avec l'heure actuelle pour obtenir l'exécution automatique du contrat à ce moment-là.
Le fil démarre, DelayQueue commence à fonctionner
Spring Boot commence à se charger, initialise la source de données et le met dedans, et active le fil unique
Laissez un enregistrement !
Recommandations associées :
ArrayBlockingQueue de la file d'attente de blocage de paquets simultanés
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!