KivaKit Extrait #6
Jan 03 2023
En savoir plus sur KivaKit https://state-of-the-art.org/https://www.
package com.telenav.kivakit.snippets;
import com.telenav.kivakit.core.collections.list.ObjectList;
import com.telenav.kivakit.core.language.trait.TryTrait;
import com.telenav.kivakit.core.thread.ThreadLocalMap;
import com.telenav.kivakit.core.value.count.Count;
import com.telenav.kivakit.core.value.count.MutableCount;
import java.util.concurrent.Future;
import static com.telenav.kivakit.core.collections.list.ObjectList.list;
import static com.telenav.kivakit.core.ensure.Ensure.ensureEqual;
import static com.telenav.kivakit.core.thread.Threads.shutdownAndAwaitTermination;
import static com.telenav.kivakit.core.thread.Threads.threadPool;
import static com.telenav.kivakit.core.value.count.Count._10_000;
import static com.telenav.kivakit.core.value.count.Count._8;
public class Snippet6 extends BaseSnippet implements TryTrait
{
public static void main(String[] args)
{
new Snippet6().run();
}
@Override
protected Object onSnippet()
{
var threads = _8;
var iterations = _10_000;
var map = new ThreadLocalMap<Integer, Integer>();
var executor = threadPool("Snippet-6", threads);
ObjectList<Future<Count>> futures = list();
threads.loop(() -> futures.add(executor.submit(() ->
{
iterations.forEachInteger(i -> map.put(i, i));
iterations.forEachInteger(i -> ensureEqual(i, map.get(i)));
return iterations;
})));
var total = new MutableCount();
for (var future : futures)
{
total.plus(tryCatch(() -> future.get()));
}
shutdownAndAwaitTermination(executor);
return total;
}
}
Output
80,000
En savoir plus sur KivaKit
https://state-of-the-art.org/
https://www.kivakit.org/
Articles Liés
Extrait KivaKit #1
Extrait KivaKit #2
Extrait KivaKit #3
Six raisons pour lesquelles la plupart des Java que vous avez vus ne sont pas du vrai Java
Pourquoi un hôte n'est pas une chaîne et un port n'est pas un entier
Un entier n'est pas un compte
Tout est diviser pour régner
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































