初始化
第一种:Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//业务逻辑
}
});
第二种:Thread thread = new Thread();
第一种在Runnable中写业务逻辑;
第二种需要自己扩展Thread,并重写Thread的run(),在run中写业务逻辑;
自己写的Thread类中对外开放的赋值一般以volatile为修饰符;
volatile:线程之间可见。
interrupt() 只是设置Thread为可终止状态,并不真正结束Thread,需要在线程的run循环中使用 isInterrupted() 自己控制退出Thread;
join() 将当前线程置为等待状态,优先等待完成Thread。
join()有三种使用方法。
join() // 无参,一直等;会引起 ANR
join(long millis) //参数为毫秒
join(long millis,int nanoseconds) //第一参数为毫秒,第二个参数为纳秒,基本上没人用这个。