/**
* 1,线程的名称,可以通过构造函数来初始化,或者setName
* 2,线程的优先级,可以直接setPro
* 3,sleep 阻塞状态,让出cpu
* 4,join 合并线程,这里的合并指的是接上,编码效果上是顺序执行
* 5,isAlive 判断线程是否还活着
*/
public class ThreadControlMethod {
public static void main(String arg[]) {
//线程名不指定就Thread-0开始
Thread t = new Thread("my thread") {
@Override
public void run() {
super.run();
System.out.println(Thread.currentThread().getName());
for (int j = 0; j <= 10; j++) {
System.out.println("j=" + j);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
t.start();
//三个有限级可以设置
//t.setPriority(Thread.MAX_PRIORITY);
//主线程名:main
System.out.println(Thread.currentThread().getName());
try {
t.join();//不使用join前,主线程和子线程交替执行,使用后顺序执行,先执行的子线程,说明join插到哪里,哪里开始执行
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 0; i <= 10; i++) {
System.out.println("i=" + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
join后 主线程阻塞了
下图里面是被join 了,被别的线程join了以后就会阻塞。
下图有同步时状态