在Java中有两种线程:一种是用户线程,另一种是守护线程。可以通过isDaemon()方法来进行区分,如果返回false,说明该线程是用户线程;如果返回true,则说明该线程是守护线程。 下面使用代码来演示一下: 当主线程执行完毕之后,子线程(守护线程)也会停止。 注意点: Java提供了一个线程调度器来监控程序启动后进入就绪状态的所有线程。线程调度器通过线程的优先级来决定调度哪些线程执行。一般来说,Java的线程调度器采用时间片轮转算法使多个线程轮转获得CPU的时间片。然而在实际的情况中,由于每个线程的重要程度不同,有时候我们想让一些线程优先执行,那么我们就可以将它的优先级调高一下,这样它获得的时间片就会多一些。 在java 中线程优先级的范围是1~10,默认优先级为5。“高优先级线程”会优先于“低优先级线程”执行。 运行结果 注意:优先级 thread.setPriority() 必须设置在 thread.start() 之前。
1、守护线程
守护线程是指为其他线程服务的线程,也就是“后台线程”,一般用来执行后台任务。守护线程最经典的应用就是GC(垃圾回收器)。public class DaemonThread { public static void main(String[] args) { Thread thread = new Thread(new Runnable() { @Override public void run() { for (int i = 0; i < 100; i++) { try { Thread.sleep(10); } catch (Exception e) { } System.out.println("我是子线程 i:" + i); } } }); // 设置为守护线程 thread.setDaemon(true); thread.start(); for (int i = 0; i < 30; i++) { try { Thread.sleep(10); } catch (Exception e) { } System.out.println("我是主线程 i:" + i); } System.out.println("主线程执行完毕~!"); } }
2、线程优先级
class PrioritytThread extends Thread { public void run() { for (int i = 0; i < 100; i++) { System.out.println(Thread.currentThread().getName() + "---"+i); } } public static void main(String[] args) { PrioritytThread t1=new PrioritytThread(); PrioritytThread t2=new PrioritytThread(); PrioritytThread t3=new PrioritytThread(); t1.setName("Thread-1"); t2.setName("Thread-2"); t3.setName("Thread-3"); // 注意设置了优先级,不代表每次都一定会先被执行,只是CPU调度会优先分配 t1.setPriority(10);//优先级必须设置在start之前 t3.start(); t1.start(); t2.start(); } }
由运行结果可以看出,优先级高的线程不一定比优先级低的线程先执行,而是优先级高的线程先执行的概率比优先级低的线程先执行的概率高。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算