线程中的常用方法:
Thread(String name); 初始化线程名字,属于线程的一个有参数的构造方法
setName(String name); 修改线程的名字
getName(); 获取线程的名字
sleep(); static静态方法,通过Thread类名调用,需要处理一些异常
【哪一个线程执行了sleep方法,哪一个线程就睡觉】
static currentThread(); 静态方法,返回当前的线程对象
getPriority(); 返回当前线程的优先级,CPU执行的优先级不是绝对的
setPriority(int newPriority); 设置线程的优先级
【注意】
线程的优先级范围是1~10,10最高,1最低,线程的默认优先级为5
这里的优先级只是提高了当前线程拥有CPU执行权概率,并不能完全保证当前线程一定
能够占用更多的CPU时间片
代码:
public class Demo3 extends Thread{
@Override
public void run() {
System.out.println("28"+Thread.currentThread());
Thread.currentThread().setName("哈哈线程");
Thread.currentThread().setPriority(10);
System.out.println(Thread.currentThread().getPriority());
for (int i = 0; i < 10; i++) {
System.out.println("Demo3线程……");
/*
在其他方法中,使用sleep方法,可以抛出,可以捕获,
但是在run方法中只能捕获不能抛出?
这是一个语法规则:在Java中,重写父类的方法,要求和父类的方法声明一模一样,在Thread类中
run方法没有抛出异常,所以在子类中,也不能抛出只能捕获,要和父类一致
*/
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) throws InterruptedException {
Demo3 d = new Demo3();
d.start();
System.out.println("38"+Thread.currentThread());
for(int i=0;i<50;i++) {
System.out.println("main线程");
Thread.sleep(100);
}
}
}