java笔记线程方式1优先级

* 我们的线程没有设置优先级,肯定有默认优先级。
 * 那么,默认优先级是多少呢?
 * 如何获取线程对象的优先级?
 *   public final int getPriority():返回线程对象的优先级
 * 如何设置线程对象的优先级呢?
 *   public final void setPriority(int newPriority):更改线程的优先级。
 *
 * 注意:
 *   线程默认优先级是5。 
 *   线程优先级的范围是:1-10。
 *   线程优先级高仅仅表示线程获取的 CPU时间片的几率高,但是要在次数比较多,或者多次运行的时候才能看到比较好的效果。
 *   
 * IllegalArgumentException:非法参数异常。
 * 抛出的异常表明向方法传递了一个不合法或不正确的参数。

 1 public class ThreadPriority extends Thread {
 2     @Override
 3     public void run() {
 4         for (int x = 0; x < 100; x++) {
 5             System.out.println(getName() + ":" + x);
 6         }
 7     }
 8 }
 9 public class ThreadPriorityDemo {
10     public static void main(String[] args) {
11         ThreadPriority tp1 = new ThreadPriority();
12         ThreadPriority tp2 = new ThreadPriority();
13         ThreadPriority tp3 = new ThreadPriority();
14
15         tp1.setName("东方不败");
16         tp2.setName("岳不群");
17         tp3.setName("林平之");
18
19         // 获取默认优先级
20         // System.out.println(tp1.getPriority());
21         // System.out.println(tp2.getPriority());
22         // System.out.println(tp3.getPriority());
23
24         // 设置线程优先级
25         // tp1.setPriority(100000);
26
27         //设置正确的线程优先级
28         tp1.setPriority(10);
29         tp2.setPriority(1);
30
31         tp1.start();
32         tp2.start();
33         tp3.start();
34     }
35 }

时间: 2024-08-02 02:51:24

java笔记线程方式1优先级的相关文章

java笔记线程方式1等待终止

public final void join():等待该线程终止 public class ThreadJoinDemo { public static void main(String[] args) { ThreadJoin tj1 = new ThreadJoin(); ThreadJoin tj2 = new ThreadJoin(); ThreadJoin tj3 = new ThreadJoin(); tj1.setName("李渊"); tj2.setName("

java笔记线程方式2

方式2:实现Runnable接口 * 步骤: *   A:自定义类MyRunnable实现Runnable接口 *   B:重写run()方法 *   C:创建MyRunnable类的对象 *   D:创建Thread类的对象,并把C步骤的对象作为构造参数传递 1 public class MyRunnableDemo { 2 public static void main(String[] args) { 3 // 创建MyRunnable类的对象 4 MyRunnable my = new

java笔记线程方式1线程终端与停止

public final void stop():让线程停止,过时了,但是还可以使用.public void interrupt():中断线程. 把线程的状态终止,并抛出一个InterruptedException. 1 public class ThreadStopDemo { 2 public static void main(String[] args) { 3 ThreadStop ts = new ThreadStop(); 4 ts.start(); 5 6 // 你超过三秒不醒过来

java笔记线程方式1睡眠

1 public class ThreadSleepDemo { 2 public static void main(String[] args) { 3 ThreadSleep ts1 = new ThreadSleep(); 4 ThreadSleep ts2 = new ThreadSleep(); 5 ThreadSleep ts3 = new ThreadSleep(); 6 7 ts1.setName("林青霞"); 8 ts2.setName("林志玲"

java笔记--线程的插队行为

对线程的插队行为的理解 在编写多线程时,会遇到让一个线程优先于其他线程运行的情况,此时除了可以设置其优先级高于其他线程外,更直接的方式是使用Thread类的join()方法 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3893797.html"谢谢-- 使用join()方法,可实现"插队"效果.当插队的线程运行结束后,其他线程将继续执行.join()方法是Thread类的一个静态方法,它有三种形式: join

11.4-全栈Java笔记:线程三种状态的控制

关于Java线程终止.暂停.联合的文章网上有很多,经过测试,本节重点讲解的是针对不同使用场景选择合适的方法. 终止线程的典型方式 终止线程我们一般不使用JDK提供的stop()/destroy()方法(他们本身也被JDK废弃了).通常的做法是提供一个boolean型的终止变量,当这个变量置为false,则终止线程的运行. [示例1]终止线程的典型方法(重要!!!) public class TestThreadCiycle implements   Runnable { String name;

11.11-全栈Java笔记:线程状态转换和任务定时调度

线程状态转换 1)New :创建好线程对象,但没有启动的时候. 一个线程调用start()之后不一定会马上启动,此时进入就绪状态,等待得到资源. 2)就绪线程序通过Scheduler(调度程序)去确定是否运行. 3)Runing---dead:运行结束(非双向,为单向箭头). 4)Runing---就绪:暂停(除了没有CPU,具备运行的所有条件). 5)Runing-otherwise(阻塞):因程序原因:调用sleep或join之后,线程被阻塞.这时不具备运行的条件,此时线程进入阻塞池.sle

11.5-全栈Java笔记:线程基本信息和优先级别

获取线程基本信息的方法 表  线程的常用方法 方法 功能 isAlive() 判断线程是否还"活"着,即线程是否还未终止. getPriority() 获得线程的优先级数值 setPriority() 设置线程的优先级数值 setName() 给线程一个名字 getName() 取得线程的名字 currentThread() 取得当前正在运行的线程对象,也就是取得自己本身 [示例1]线程的常用方法举例一 public class ThreadTest3 { public static 

11.9-全栈Java笔记: 线程并发协作(生产者/消费者模式)

多线程环境下,我们经常需要多个线程的并发和协作.这个时候,就需要了解一个重要的多线程并发协作模型"生产者消费者模式". 什么是生产者? 生产者指的是负责生产数据的模块(这里模块可能是:方法.对象.线程.进程). 什么是消费者? 消费者指的是负责处理数据的模块(这里模块可能是:方法.对象.线程.进程). 什么是缓冲区? 消费者不能直接使用生产者的数据,它们之间有个"缓冲区".生产者将生产好的数据放入"缓冲区",消费者从"缓冲区"