package com.vince;
/**
*long getId():返回该线程的标识符
* String getName(): 返回该线程的名字
* void setName(String name):改变线程名称,使之与参数name相同
* boolean isAlive():测试线程是否处于活动状态
* void setPriority(int newPriority):更改线程的优先级
* static int MAX_PRIORITY:线程可以具有的最高优先级
* static int MIN_PRIORITY:线程可以具有的最低优先级
* static int NORM_PRIORITY:分配给线程的默认优先级
*/
public class ThreadDemo3 {
public static void main(String[] args) {
MyRunnable4 mr4 = new MyRunnable4();
Thread t = new Thread(mr4);
t.setName("Thread-t");//改变线程名称
//优先级高可以提高该线程抢占CPU时间片的概率大
t.setPriority(Thread.MAX_PRIORITY);
//线程分为守护线程和用户线程,当进程中没有用户线程时,JVM会退出
t.setDaemon(true);//把线程设置为守护线程
t.start();
//测试线程是否处于活动状态
System.out.println(t.isAlive());
for(int i =0; i < 10; i++){
System.out.println("main-"+i);
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(i==5){
//让出本次CPU执行的时间片
Thread.yield();
}
}
}
}
class MyRunnable4 implements Runnable{
@Override
public void run() {
for(int i =0; i < 10; i++){
System.out.println("---"+i);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}