Đoạn mã KivaKit #6

Jan 03 2023
Tìm hiểu thêm về KivaKit https://state-of-the-art.org/https://www.
Mã số

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

Tìm hiểu thêm về KivaKit

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

Những bài viết liên quan

Đoạn mã KivaKit #1
Đoạn mã KivaKit #2
Đoạn mã KivaKit #3

Sáu lý do tại sao hầu hết Java bạn đã thấy không phải là Java thực
Tại sao máy chủ không phải là chuỗi và cổng không phải là số nguyên
Số nguyên không phải là số đếm
Mọi thứ đều được phân chia và chinh phục