Java程序是通过线程执行的,线程在程序中具有独立的执行路径。Java虚拟机为每条分配独立的JVM栈空间以免彼此干扰。
Runnable接口为关联Thread对象的线程提供执行代码。
package com.scott.current;
public class ThreadDemo {
public static void main(String[] args) {
boolean isDaemon = args.length != 0;
Runnable r = new Runnable() {
@Override
public void run() {
Thread thd = Thread.currentThread();
while (true) {
System.out.printf("%s is %salive and in %s" + "state%n",
thd.getName(),
thd.isAlive() ? "" : "not ",
thd.getState());
}
}
};
Thread t1 = new Thread(r, "thd1");
if (isDaemon) {
t1.setDaemon(true);
}
System.out.printf("%s is %salive and in %s" + "state%n",
t1.getName(),
t1.isAlive() ? "" : "not ",
t1.getState());
Thread t2 = new Thread(r);
t2.setName("thd2");
System.out.printf("%s is %salive and in %s" + "state%n",
t2.getName(),
t2.isAlive() ? "" : "not ",
t2.getState());
t1.start();
t2.start();
}
}