环境 JVM 1.8
Runable 会占用当前线程,如果run方法循环的话会阻塞当前线程。
Thread 会新启动一个线程。
所以什么线程间数据问题,请自行考虑,那个售票的示例,理解方式感觉就不对
以下最简单的示例
1.Runable
public class MyRunThread implements Runnable{
@Override
public void run() {
System.out.println("MyRunThread start");
for (int i = 0; i < 10; i++) {
System.out.println("MyRunThread :"+i);
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("MyRunThread end");
}
}2.Thread
public class MyThrThread extends Thread{
@Override
public void run() {
System.out.println("MyThrThread 开始");
for (int i = 0; i < 10; i++) {
System.out.println("MyThrThread :"+i);
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("MyThrThread 结束");
}
}3.TEST
public class RunTest {
public static void main(String[] args) {
System.out.println("MyRunThread 启动开始");
MyRunThread run = new MyRunThread();
run.run();
System.out.println("MyRunThread 启动完成");
System.out.println("MyThrThread 启动开始");
MyThrThread thr = new MyThrThread();
thr.start();
System.out.println("MyThrThread 启动完成");
}
}4.结果
MyRunThread start MyRunThread :0 MyRunThread :1 MyRunThread :2
乐享:知识积累,快乐无限。