Skip to content

Instantly share code, notes, and snippets.

View TGITS's full-sized avatar

TheGeekInTheShell TGITS

View GitHub Profile
@TGITS
TGITS / heroes-frequencies-map-multi.java
Created November 3, 2024 14:31
Script JBang donnat un exemple d'utilisation d'un tableau de fréquences dans un contexte concurrent
/// usr/bin/env jbang "$0" "$@" ; exit $?
// A exécuter avec JBang : jbang heroes-frequencies-map-multi.java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.List;
@TGITS
TGITS / frequencies-map-in-concurrent-context.java
Created November 2, 2024 17:10
Un script JBang simple pour montrer illustrer une implémentation d'un tableau de fréquences dans un contexte concurrent
/// usr/bin/env jbang "$0" "$@" ; exit $?
// A exécuter avec JBang : jbang frequencies-map-in-concurrent-context.java
import java.time.Duration;
import java.util.concurrent.atomic.LongAdder;
import java.util.concurrent.ConcurrentHashMap;
import java.util.Map;
import java.util.List;
class FrequenciesMapUpdater implements Runnable {
@TGITS
TGITS / long-adder-counter.java
Created August 26, 2024 15:51
Compteur concurrent avec utilisation d'un LongAdder
/// usr/bin/env jbang "$0" "$@" ; exit $?
// A exécuter avec JBang : jbang long-adder-counter.java
import java.time.Duration;
import java.util.concurrent.atomic.LongAdder;
interface LongCounter {
String name();
void increment();
long value();
@TGITS
TGITS / atomic-long-counter.java
Created July 26, 2024 13:34
Incrémentation d'un compteur par plusieurs threads en utilisant AtomicLong
/// usr/bin/env jbang "$0" "$@" ; exit $?
// A exécuter avec JBang : jbang atomic-long-counter.java
import java.time.Duration;
import java.util.concurrent.atomic.AtomicLong;
interface LongCounter {
String name();
void increment();
long value();
@TGITS
TGITS / synchronized-counter.java
Created July 26, 2024 12:56
Mise à jour d'un compteur depuis plusieurs threads différents en utilisant synchronized
/// usr/bin/env jbang "$0" "$@" ; exit $?
// A exécuter avec JBang : jbang synchronized-counter.java
import java.time.Duration;
interface LongCounter {
String name();
void increment();
long value();
}
@TGITS
TGITS / naive-counter-in-concurrent-context.java
Created July 26, 2024 10:03
Solution naïve et incorrecte à la mise à jour d'un compteur par plusieurs threads
/// usr/bin/env jbang "$0" "$@" ; exit $?
// A exécuter avec JBang : jbang naive-counter-in-concurrent-context.java
import java.time.Duration;
class NotSynchronizedLongCounter {
private long counter;
private final String name;
@TGITS
TGITS / naive-counter-with-one-thread.java
Created July 26, 2024 09:32
Compteur naif avec un seul thread
/// usr/bin/env jbang "$0" "$@" ; exit $?
// A exécuter avec JBang : jbang naive-counter-with-one-thread.java
import java.time.Duration;
class NotSynchronizedLongCounter {
private long counter;
private final String name;
@TGITS
TGITS / reversed_string_in_loop.py
Created February 29, 2024 10:59
Exemple d'utilisation de reversed sur une chaine dans un boucle et dans une compréhension
bonjour = "Hello World"
print(bonjour)
for c in reversed(bonjour):
print(c, end="")
print()
print([c for c in reversed(bonjour)])
@TGITS
TGITS / function_reversed_on_tuple.py
Created February 29, 2024 10:58
Utilisation de la fonction reversed() sur un tuple
tuple = (1, 2, 3, 4)
for i in reversed(tuple):
print(str(i) + " ", end="")
@TGITS
TGITS / function_reversed_on_range.py
Created February 29, 2024 10:57
Exemple de l'utilisation de la fonction reversed sur un range en Python
print('Compte à rebours :')
for i in reversed(range(10)):
print(i)