线程的创建:(来自于牛客网Java面试题)
1、继承Thread类
2、实现Runnable接口
3、应用程序可以使用Executor框架来创建线程池 高效, 容易实现
4、实现Callable接口
针对于Thread类的start(),run()和join()方法的说明:
1、start();线程不会立即启动。相当于是在就绪队列里面。
2、run() 可以当成Thread对象的一个普通的方法,特殊之处就在于它是在线程启动的时候执行的。
3、join()在一个线程中启动另一个线程。
----------------------------------------------------------------------------------------
下面我将给出一段代码:大家可以先猜猜大概的输出情况:
public class JoinTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyThread thread = new MyThread("test join");
MyThread thread1 = new MyThread("join1");
thread.start();//线程进入就绪队列
thread1.run();//直接调用run方法执行
try {