自学打卡 java之线程类

自学打卡 java之线程类

 

自学打卡 java之线程类

一、

package practice;
//获取当前运行的线程
public class Chapter9 {
    public static void main(String args[]) {
        String name;
        int p;
        Thread curr;
        
        curr=Thread.currentThread();
        System.out.println(curr);
        
        p=curr.getPriority();
        name=curr.getName();
        System.out.println(p+ " "+name);
        
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }

}

 

二、

package practice;
//通过继承实现多线程
class UserThread extends Thread{       //定义多线程类
    int sleepTime=0;

    public UserThread(String id){     //构造函数
        super(id);
        sleepTime=(int)(Math.random()*1000);  //随机产生睡眠时间,睡眠0~1000毫秒
        System.out.println("线程名:"+getName()+",睡眠: "+sleepTime+"ms");
    }
    
    public void run() {       //覆盖父类方法
        try {
            Thread.sleep(sleepTime);     //可能产生中断异常
        }catch(InterruptedException e) {
            System.out.println("运行异常!"+e.toString());
        }
        System.out.println("当前运行的线程是:"+getName());
    }
}
public class Chapter9 {
    public static void main(String args[]) {
        UserThread t1,t2,t3,t4;       //定义4个线程引用
        t1=new UserThread("No 1");
        t2=new UserThread("No 2");
        t3=new UserThread("No 3");
        t4=new UserThread("No 4");
        t1.start();
        t2.start();
        t3.start();
        t4.start();
    }

}