当你同时启动多个设置了优先级的线程时,并不是 执行完优先级高的线程之后才去执行优先级低的线程,而是高优先级的线程获得CPU的时间片的概率更高,整个的执行流程大致符合高优先级的线程先执行,但前面的执行过程中同样会存在优先级低的线程。
线程可以分为 ①守护线程 ②用户线程
其中守护线程是为用户线程而存在的,当用户程序执行结束后,不论守护线程是否执行完毕,守护线程都会结束执行。
设置守护线程的方法: 对象 . setDaemon(true);
判断守护线程的方法: thread . isDaemon();
注意事项:守护、用户线程的设置 要在线程start()之前设置,否则会报错。
线程的常用方法:
a.join :等待此线程执行完成之后,再执行后序的代码。
b.interrupt() 线程终止
interrupt()需要配合Thread.interrupted() 或者Thread.currentThread().isInterrupted()的判断一起使用
对比isinterruptid 和 interruptted
1.interrupted属于静态方法
2.interrupted在使用完之后会重置中断标识符,而islnterrupted不 重置中断表示符
c.yield:让出CPU的执行权
yield 方法会让出CPU的执行权,线程调度器重新调度线程执行,此时仍然有一定的机会启动刚被yield的线程