1.Thread的构造方法
package threadAPI; public class CreateThread { public static void main(String[] args) { Thread t1 = new Thread(); Thread t2 = new Thread(); t1.start(); t2.start(); System.out.println(t1.getName()); System.out.println(t2.getName()); } }
总结1:
创建线程对象Thread,默认有一个线程名,以Thread-开头,从0开始计数
Thread-0
Thread-1
Thread-2
可以看到Thread()中默认传入的第二个参数,即Runnable接口为null
在init方法中,会将我们传入的target给Thread的成员变量
然后在调用run方法的时候,会做如下判断
所以当target为null的时候,默认的run方法中什么也不做
总结2:
如果在构造Thread的时候,没有传递Runnable接口或者没有复写Thread的run方法,该Thread将不会调用任何东西
如果传递了Runnable接口的实例,则会执行该方法的逻辑代码
如果复写了Thread的run方法,则会执行复写的逻辑代码
为线程传递一个线程名
这时我们传入的参数名,会传递给线程对象的成员变量name
为线程传递线程名的同时,传递Runnbale接口的实现类对象,调用原理同上
我们还可以在为线程传入线程组
其实在上述的方法中没有传入线程组的情况下,init方法的ThreadGroup默认被传入null
parent即调用Thread对象的start方法的线程
package threadAPI; public class CreateThread { public static void main(String[] <a>本文来源gao($daima.com搞@代@#码8网^</a>args) { Thread t = new Thread(); t.start(); System.out.println(t.getThreadGroup()); System.out.println(Thread.currentThread().getName()); System.out.println(Thread.currentThread().getThreadGroup()); } }