常见API一览
Thread t1 = new Thread(() -> {System.out.println("我是线程t1");System.out.println("Hello, World!");
});
t1.start();
// 获取线程名称 getName()
// 线程名称默认是Thread-0, Thread-1, ...
System.out.println(t1.getName());// 通过构造方法设置线程名称 Thread(Runnable target, String name)
// 也可以通过setName()方法设置线程名称
Thread t2 = new Thread(() -> {System.out.println("我是线程t2");System.out.println("Hello, World!");
}, "t2");
t2.start();
System.out.println(t2.getName());// 获取当前线程名称
// Thread.currentThread()获取当前线程对象
// 主线程不是人为创建,一般都是使用这种方法进行创建的
System.out.println("我是主线程:"+Thread.currentThread().getName());
join方法决定执行顺序
- 线程一旦开启,不同先线程之间的执行顺序具有随机性
- join方法能够
决定线程执行的先后顺序
即使t1执行了很长时间,t2也必须在t1执行完毕之后才能执行
Thread t1 = new Thread() {@Overridepublic void run() {try {sleep(10000);} catch (InterruptedException e) {throw new RuntimeException(e);}System.out.println("我是线程t1");}
};
t1.start();
t1.join();Thread t2 = new Thread() {@Overridepublic void run() {System.out.println("我是线程t2");}
};
t2.start();
t2.join();