Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // петушарп
- long integer_ = 100;
- var time1 = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
- var tasks = new List<Task<bool>>();
- for (var i = 0; i < 100_000; i++)
- {
- var task = new Task<bool>(() =>
- {
- Thread.Sleep(100);
- integer_ += 50;
- return true;
- });
- task.Start();
- tasks.Add(task);
- }
- foreach (var task in tasks)
- {
- task.Wait();
- }
- var time2 = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
- Console.WriteLine($"Result = {integer_}; Time consumed = {(time2-time1) / 1_000} s");
- // джава
- ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();
- AtomicLong integer_ = new AtomicLong(100);
- long nano1 = System.nanoTime();
- List<Future<?>> futures = new ArrayList<>(1_000_000);
- for (int i = 0; i < 100_000; i++) {
- futures.add(executor.submit(() -> {
- UnsafeThread.sleep(100);
- integer_.addAndGet(50);
- }));
- }
- for (Future<?> future : futures) future.get();
- long nano2 = System.nanoTime();
- System.out.println(STR."""
- Result = \{integer_.get()};
- Time consumed = \{(nano2-nano1)/1_000_000_000} s
- """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement