线程调用 的意义在于JVM应对运行的多个线程进行系统级的协调,以避免多个线程争用有限资源而导致应用系统死机或者崩溃。
为了线程对 于操作系统和用户的重要性区分开,Java定义了线程的优先级策略。Java将线程的优先级分为10个等级,分别用1-10之间的数字表示。数字越大表明 线程的级别越高。相应地,在Thread类中定义了表示线程最低、最高和普通优先级的成员变量MIN_PRIORITY、MAX_PRIORITY和 NORMAL_PRIORITY,代表的优先级等级分别为1、10和5。当一个线程对象被创建时,其默认的线程优先级是5。
在Java中比较特殊的线程是被称为守护(Daemon)线程的低级别线 程。这个线程具有最低的优先级,用于为系统中的其它对象和线程提供服务。将一个用户线程设置为守护线程的方式是在线程对象创建之前调用线程对象的 setDaemon方法。典型的守护线程例子是JVM中的系统资源自动回收线程,它始终在低级别的状态中运行,用于实时监控和管理系统中的可回收资源。
你的程序中可以设置成守护线程
t1.strart();
t1.setDaemon(true);
但是,你还要做出判断,当票数为0的时候,你要确定那个线程是守护线程,然后退出虚拟机。 |