Java/fr: Difference between revisions

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..."
(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>.


===The <tt>volatile</tt> Keyword===
===Mot-clé <tt>volatile</tt> ===  
This keyword has a sense very different from that which C/C++ programmers are accustomed to. In Java <tt>volatile</tt> when applied to a variable has the effect of ensuring that its value is always read from and written to main memory, which can help to ensure that modifications of this variable are made visible to other threads. That said, there are contexts in which the use of the <tt>volatile</tt> keyword are not sufficient to avoid race conditions and the <tt>synchronized</tt> keyword is required to ensure program consistency.
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)
rsnt_translations
56,437

edits