Articles of concurrence

ConcurrentHashMap JDK 8 quand utiliser computeIfPresent

La nouvelle version de Concurrent Hash Map de jdk 8 comporte deux nouvelles méthodes. computeIfAbsent computeIfPresent putIfAbsent – Ancienne méthode Je comprends les cas d’utilisation de putIfAbsent et de computeIfAbsent . Mais je ne suis pas sûr des scénarios pour lesquels je vais utiliser computeIfPresent . Aussi, pourquoi ai-je besoin de putIfAbsent si j’ai computeIfPresent […]

Utilisation du ThreadPool Java

J’essaie d’écrire un robot Web multithread. Ma classe d’entrée principale a le code suivant: ExecutorService exec = Executors.newFixedThreadPool(numberOfCrawlers); while(true){ URL url = frontier.get(); if(url == null) return; exec.execute(new URLCrawler(this, url)); } URLCrawler extrait l’URL spécifiée, en parsing les extraits extraits au format HTML et planifie les liens invisibles vers la frontière. Une frontière est une […]

Pourquoi Queue.poll est-il plus rapide qu’itération? (java.util.concurrent.ConcurrentLinkedQueue)

J’ai un morceau de code qui extrait tous les éléments d’une queue. Je ne me soucie pas de l’état de la queue après coup et je peux être assuré que la queue ne sera pas modifiée pendant que j’en retire les éléments. J’utilisais initialement un iterator pour extraire les éléments, car je pensais que ce […]

FileInputStream et FileOutputStream dans le même fichier: un read () est-il garanti de voir tous les write () s qui «se sont déroulés avant»?

J’utilise un fichier comme cache pour le Big Data. Un thread l’écrit séquentiellement, un autre le lit séquentiellement. Puis-je être sûr que toutes les données qui ont été écrites (par write() ) dans un thread peuvent être read() partir d’un autre thread, en supposant une relation “happen-before” appropriée en termes de modèle de mémoire Java? […]

variables volatiles et barrière de mémoire en java

J’ai une structure de données composée de nœuds liés. Vous pouvez penser à cela comme à une simple LinkedList. Chaque nœud de la liste est constitué d’une valeur et d’un champ suivant pointant vers l’autre nœud ou null si c’est le dernier nœud. Le premier nœud fonctionne comme une racine, il n’a pas de valeur, […]

HashMap simultané: vérification de la taille

Hashmap simultané pourrait résoudre le problème de synchronisation visible dans hashmap. Donc, append et supprimer serait rapide si nous utilisons synchronize key work avec hashmap. Qu’en est-il de vérifier la taille de hashmap, si plusieurs threads vérifient la taille concurrente de HashMap? avons-nous encore besoin du mot-clé de synchronisation: quelque chose comme suit: public static […]

Etat des parameters de tâches simultanées JavaFX

Je crée l’interface utilisateur de mon application qui partage un module principal avec des versions pour d’autres plates-formes. En JavaFX, j’essaie d’utiliser Task s pour effectuer des Task en arrière-plan, mais je ne vois pas comment mettre à jour l’état de la tâche. C’est ce que j’essaie de faire. La variable user contient une instance […]

Concurrence – Obtenir l’ID généré par MongoDB d’un object inséré via Java de manière sécurisée pour les threads

Quelle est la meilleure méthode pour obtenir l’ID généré par Mongo d’un document inséré via Java? Le processus Java lors de l’insertion des documents est multi-thread, ce qui signifie que nous avons besoin d’une méthode atomique pour insérer et renvoyer l’ID de l’object. De même, si nous configurons un index unique, si un object est […]

Pool de threads en cache Java et thread local

J’ai une question à propos de Java et de la concurrence. Disons que j’ai une variable ThreadLocal appelée un. Et j’utilise un CachedThreadPool pour obtenir de nouveaux threads. Quand un thread est répété, qu’advient-il de la variable ThreadLocal? il garde la même valeur (parce que c’est le même thread) ou il commence vide (comme si […]

Mise en œuvre effective de Callable et Future

Je suis en train de comprendre le grain fin. Où se situe l’implémentation de Java Callable and Future dans la JVM? J’ai trouvé la classe Future où elle décrit l’avenir au niveau supérieur en langage Java, j’essaie de trouver où il est décrit au niveau inférieur. Pour résumer, il serait intéressant de trouver l’implémentation réelle […]