rsnt_translations
56,430
edits
(Created page with "===Garbage Collector (GC)=== Que la tâche soit ou non multifil, Java utilise par défaut le mécanisme de ésallocation parallèle ''Garbage Collector'' avec autant de fils...") |
(Created page with "===Mot-clé <tt>volatile</tt> === Le sens de ce mot-clé est très différent de celui du même terme utilisé en programmation C/C++. La valeur d'une variable Java ayant cet...") |
||
Line 50: | Line 50: | ||
Que la tâche soit ou non multifil, Java utilise par défaut le mécanisme de ésallocation parallèle ''Garbage Collector'' avec autant de fils que le nombre de cœurs CPU dans le nœud. Chacun des fils du GC consomme une portion de la mémoire physique proportionnelle au total. Nous recommandons fortement de définir le même nombre de fils pour le GC que le nombre de cœurs CPU demandé à l'ordonnanceur lors de la soumission de votre script, par exemple <tt>-XX:ParallelGCThreads=12</tt>. Même si la tâche est parallèle, vous pouvez invoquer le GC série avec l'option <tt>-XX:+UseSerialGC</tt>. | Que la tâche soit ou non multifil, Java utilise par défaut le mécanisme de ésallocation parallèle ''Garbage Collector'' avec autant de fils que le nombre de cœurs CPU dans le nœud. Chacun des fils du GC consomme une portion de la mémoire physique proportionnelle au total. Nous recommandons fortement de définir le même nombre de fils pour le GC que le nombre de cœurs CPU demandé à l'ordonnanceur lors de la soumission de votre script, par exemple <tt>-XX:ParallelGCThreads=12</tt>. Même si la tâche est parallèle, vous pouvez invoquer le GC série avec l'option <tt>-XX:+UseSerialGC</tt>. | ||
=== | ===Mot-clé <tt>volatile</tt> === | ||
Le sens de ce mot-clé est très différent de celui du même terme utilisé en programmation C/C++. La valeur d'une variable Java ayant cet attribut est toujours lue directement de la mémoire principale et toujours écrite directement dans la mémoire principale; toute modification à la variable sera donc visible par tous les autres fils. Dans certains contextes cependant, <tt>volatile</tt> ne suffit pas à empêcher les situations de compétition (''race conditions'') et <tt>synchronized</tt> est nécessaire pour maintenir la cohérence du programme. | |||
==Further Reading== | ==Further Reading== | ||
Scott Oaks and Henry Wong, ''Java Threads: Understanding and Mastering Concurrent Programming'' (3rd edition) (O'Reilly, 2012) | Scott Oaks and Henry Wong, ''Java Threads: Understanding and Mastering Concurrent Programming'' (3rd edition) (O'Reilly, 2012) |