Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.concurrent.atomic.AtomicInteger;
- import java.awt.Toolkit;
- public class Main
- {
- public static int n = 100000;
- public static final AtomicInteger val = new AtomicInteger(n);
- public static ThreadsDecrement[] threadsArr = new ThreadsDecrement[4];
- public static class ThreadsDecrement extends Thread
- {
- int counter = 0;
- public void run()
- {
- long start = System.currentTimeMillis();
- while(Main.val.get() > 0)
- {
- val.getAndDecrement();
- counter++;
- }
- long end = System.currentTimeMillis();
- Toolkit.getDefaultToolkit().beep();
- System.out.println(this.getName() + " performed " + Integer.toString(counter) + " operations. " +
- "It took " + Double.toString(((double)(end-start)/1000L))+ " seconds.\n" +
- "remaining value = " + Integer.toString(Main.val.get()));
- }
- }
- public static void main(String args[])
- {
- for(int i = 0; i < 4; i++)
- {
- Main.threadsArr[i] = new ThreadsDecrement();
- Main.threadsArr[i].setName("Thread " + Integer.toString(i));
- Main.threadsArr[i].start();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement