KivaKit Parçacığı #6

Jan 03 2023
KivaKit hakkında daha fazla bilgi https://state-of-the-art.org/https://www.
kod

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

KivaKit hakkında daha fazla bilgi

https://state-of-the-art.org/
https://www.kivakit.org/

İlgili Makaleler

KivaKit Parçacığı #1
KivaKit Parçacığı #2
KivaKit Parçacığı #3

Gördüğünüz Çoğu Java'nın Gerçek Java Olmamasının Altı Nedeni
Neden Bir Ana Bilgisayar Bir Dizge Değildir ve Bir Bağlantı Noktası
Bir Tam Sayı Değildir Bir Tam Sayı Bir Sayı Değildir
Her Şey Böl ve Yönet