Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.lang.management.ManagementFactory;
- import java.lang.management.ThreadInfo;
- import java.lang.management.ThreadMXBean;
- import java.util.Arrays;
- import java.util.Timer;
- import java.util.TimerTask;
- public class Monitor implements Runnable {
- @Override
- public void run() {
- ThreadMXBean threadMX = ManagementFactory.getThreadMXBean();
- ThreadInfo[] threadInfo = threadMX.getThreadInfo(threadMX.getAllThreadIds() );
- Timer timer = new Timer();
- timer.schedule(new TimerTask() {
- @Override
- public void run() {
- System.out.print("\033[H\033[2J");
- System.out.flush();
- Arrays.stream(threadInfo).forEach(info->
- System.out.println("ID: "+info.getThreadId()+" Name: "+ info.getThreadName()+" Status: "+info.getThreadState())
- );
- System.out.println("\n----------------------------------------------------------------------------\n");
- }
- },0,2000);
- }
- }
- //--------------------------------------------------------------------------------------
- import java.util.Random;
- import java.util.Timer;
- public class MyRunnable implements Runnable {
- @Override
- public void run() {
- int j = 0;
- while (true){
- Random rand = new Random();
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis()< startTime+3000){
- j++;
- }
- try{
- int randTime = 100000;
- Thread.sleep(randTime);
- }catch (InterruptedException ie) {
- ie.printStackTrace();
- Thread.currentThread().interrupt();
- }
- }
- }
- }
- //---------------------------------------------------------------------
- import java.util.Random;
- public class Main {
- public static void main(String[] args) {
- Random rnd = new Random();
- for (int i=0;i<rnd.nextInt(5)+2;i++){
- new Thread(new MyRunnable(),"\u001B[31m"+"Thread"+i+"\u001B[0m").start();
- }
- Thread monitorThread = new Thread(new Monitor());
- monitorThread.start();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement