回顾多线程编程——线程的优先级

一 概述

为了有助于操作系统对线程的调度次序,每个线程都有一个优先级。

二 线程优先级详情

public class Thread implements Runnable { 
    /**
     * The minimum priority that a thread can have.
     */
    public final static int MIN_PRIORITY = 1;

   /**
     * The default priority that is assigned to a thread.
     */
    public final static int NORM_PRIORITY = 5;

    /**
     * The maximum priority that a thread can have.
     */
    public final static int MAX_PRIORITY = 10;
    }

Java中线程的优先级是一个整数,根据JDK1.8源码可知,线程的优先级取值范围1 (Thread.MIN_PRIORITY ) - 10 (Thread.MAX_PRIORITY )。默认情况下,每一个线程都会分配一个优先级NORM_PRIORITY(5)。

注意:具有较高优先级的线程对程序更重要,并且应该在低优先级的线程之前分配处理器资源。但是,线程优先级不能保证线程执行的顺序,而且非常依赖于平台。

三 多线程使用

有效利用多线程的关键是理解程序是否是并行执行,当程序中有两个子系统需要并行执行时,我们应该考虑利用多线程编程。虽然借助多线程技术可以编写出非常高效的程序,但是创建的线程太多的时候,程序的执行效率反而会降低,因为上下文的切换开销非常重要,如果你创建了太多的线程,CPU花费在上下文的切换的时间将多于执行程序的时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值