常见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() {
@Override
public void run() {
try {
sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.println("我是线程t1");
}
};
t1.start();
t1.join();
Thread t2 = new Thread() {
@Override
public void run() {
System.out.println("我是线程t2");
}
};
t2.start();
t2.join();