1.首先谈一谈Thread的构造方法
Thread()
分配新的 Thread 对象。
Thread(Runnable target)
分配新的 Thread 对象。
Thread(Runnable target, String name)
分配新的 Thread 对象。
Thread(String name)
分配新的 Thread 对象。
Thread(ThreadGroup group, Runnable target)
分配新的 Thread 对象。
Thread(ThreadGroup group, Runnable target, String name)
分配新的 Thread 对象,以便将 target 作为其运行对象,将指定的 name 作为其名称,并作为 group 所引用的线程组的一员。
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
分配新的 Thread 对象,以便将 target 作为其运行对象,将指定的 name 作为其名称,作为 group 所引用的线程组的一员,并具有指定的堆栈大小。
Thread(ThreadGroup group, String name)
分配新的 Thread 对象。
2.Thread里面的静态方法与普通方法,Thread静态方法是针对于当前线程的
public class ThreadApi extends Thread{
public ThreadApi(String name) {
super(name);
}
@Override
public void run() {
System.out.println(this.getName()+"当前线程数:"+Thread.activeCount());//当前线程数
System.out.println(this.getName()+"当前线程:"+Thread.currentThread());//获取当前线程
System.out.println(this.getName()+"当前线程id:"+this.getId());//获取当前线程id
System.out.println(this.getName()+"当前线程名:"+this.getName());//获取当前线程名
System.out.println(this.getName()+"当前线程优先级:"+this.getPriority());//获取当前线程优先级
System.out.println(this.getName()+"当前线程状态:"+this.getState());//获取当前线程状态
System.out.println(this.getName()+"当前线程组:"+this.getThreadGroup());//获取当前线程组
System.out.println(this.getName()+"当前线程是否是活动的:"+this.isAlive());//当前线程是否是活动的
System.out.println(this.getName()+"当前线程是否是守护线程:"+this.isDaemon());//当前线程是否是守护线程
}
public static void main(String[] args){
Thread $1 = new ThreadApi("我的线程1");
$1.start();
}
}
我的线程1当前线程数:2
我的线程1当前线程:Thread[我的线程1,5,main]
我的线程1当前线程id:10
我的线程1当前线程名:我的线程1
我的线程1当前线程优先级:5
我的线程1当前线程状态:RUNNABLE
我的线程1当前线程组:java.lang.ThreadGroup[name=main,maxpri=10]
我的线程1当前线程是否是活动的:true
我的线程1当前线程是否是守护线程:false