第二种:自定义类MyThread 实现Runnable接口,主函数创建5个线程,自定义线程类的构造函数输出 创建线程X * run方法内统计每个线程 一共6次

package com.heima.gu;

import java.util.HashMap;

public class Test03 {
    /**自定义类MyThread 实现Runnable接口,主函数创建5个线程,自定义线程类的构造函数输出 创建线程X * run方法内统计每个线程 一共6次 * 用hashmap 集合 统计每个线程的次数,创建五个集合。 * @param args */
    public static void main(String[] args) {
        int i;
        for(i = 1; i <= 5;i++){
            new Thread(new MyThread("线程"+i),"线程"+i){
            }.start();
        }
    }
}
class MyThread implements Runnable{
    public MyThread(String str){
        System.out.println("创建"+str);
    }
    int count = 6;
    @Override
    public void run() {
        HashMap<String, Integer> hm = new HashMap<String, Integer>();
        hm.put(Thread.currentThread().getName(), 0);
        while(true){
            synchronized (MyThread.class) {
                if(hm.get(Thread.currentThread().getName()) >= count){
                    break;
                }else{
                    hm.put(Thread.currentThread().getName(), hm.get(Thread.currentThread().getName())+1);
                    System.out.println(Thread.currentThread().getName()+" :计数"+ hm.get(Thread.currentThread().getName()));
                }
                for (String str : hm.keySet()) {
                    System.out.println("**"+str+"*******"+hm.get(str));
                }
            }
        }

    }

}

你可能感兴趣的:(第二种:自定义类MyThread 实现Runnable接口,主函数创建5个线程,自定义线程类的构造函数输出 创建线程X * run方法内统计每个线程 一共6次)