5、守护线程与yield、其它方法与优先级

这篇博客介绍了Java中线程的守护线程设置、yield方法的使用以及线程优先级的调整。通过示例代码展示了如何将线程设置为守护线程,如何检查线程状态,以及如何改变线程优先级以影响CPU时间片的分配。此外,还讨论了线程的活动状态检查和如何通过yield方法短暂让出CPU执行权。
摘要由CSDN通过智能技术生成

5、守护线程与yield、其它方法与优先级

守护线程与yield

public final void setDaemon(boolean on)
将此线程标记为daemon线程或用户线程。 当运行的唯一线程都是守护进程线程时,Java虚拟机将退出。
public final boolean isDaemon()
测试这个线程是否是守护线程。
public static void yield()
暂停当前正在执行的线程对象,并执行其他线程。(了解)

其它方法与优先级

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) throws InterruptedException {
       MyRunnable4 mr=new MyRunnable4();
       Thread t=new Thread(mr);

       //线程可以分成守护线程和用户线程:当运行的唯一线程都是守护进程线时,java虚拟机退出
       t.setDaemon(true);//把线程设置为守护线程

        //判断线程是否处于活跃状态
        System.out.println(t.isAlive());//返回false
        t.start();
        System.out.println(t.isAlive());//返回true
        //优先级setPriority;MAX_PRIORITY最大优先级
        //优先级高可以提高改线程抢到cup时间片的概率
        t.setPriority(Thread.MAX_PRIORITY);

        for (int i = 0; i <50 ; i++) {
            System.out.println("main"+i);
            Thread.sleep(300);
        }
//        
//        if( i==5){
//         Thread.yield();//让出本次操CPU执行时间
//        }
    }
}

class  MyRunnable4 implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 50; i++) {
            System.out.println("--"+i);
            try {
                Thread.sleep(300);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }


        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值