1.4 调用getPriority方法获得当前线程的优先级;
时间: 2023-06-12 18:04:54 浏览: 64
在Java中,可以通过Thread类的getPriority()方法来获取当前线程的优先级。例如:
```
int priority = Thread.currentThread().getPriority();
System.out.println("当前线程的优先级为:" + priority);
```
该方法将返回一个整数值,表示当前线程的优先级。优先级的范围是1-10,其中1为最低优先级,10为最高优先级。默认情况下,线程的优先级为5。
相关问题
定义一个子线程类: 1.1 创建一个对象,用作锁对象; 1.2 重写Thread类的run方法; 1.3 使用同步代码块,保证每个线程能够按照要求连续打印语句; 1.4 调用getPriority方法获得当前线程的优先级; 1.5 如果线程的优先级为10,就打印5次“线程1正在运行”; 1.6 如果线程的优先级为6,就打印10次“线程2正在运行”; 2. 定义测试类: 2.1 在main方法中创建线程任务类的对象; 2.2 创建两个线程对象; 2.3 调用setPriority方法给线程对象设置优先级; 2.4 开启线程;
以下是代码实现:
```java
class MyThread extends Thread {
private Object lock;
public MyThread(Object lock) {
this.lock = lock;
}
@Override
public void run() {
synchronized (lock) {
int priority = getPriority();
if (priority == 10) {
for (int i = 0; i < 5; i++) {
System.out.println("线程1正在运行");
}
} else if (priority == 6) {
for (int i = 0; i < 10; i++) {
System.out.println("线程2正在运行");
}
}
}
}
}
public class TestThread {
public static void main(String[] args) {
Object lock = new Object();
MyThread t1 = new MyThread(lock);
MyThread t2 = new MyThread(lock);
t1.setPriority(10);
t2.setPriority(6);
t1.start();
t2.start();
}
}
```
在测试类中,我们创建了两个线程对象t1和t2,并设定它们的优先级分别为10和6。然后开启这两个线程,让它们执行各自的打印任务。在MyThread类中,我们使用同步代码块来保证每个线程能够按照要求连续打印语句。同时,我们还调用了getPriority方法获得当前线程的优先级,并根据不同的优先级执行不同的任务。
java多线程中获取优先级方法
Java中获取线程优先级的方法是使用Thread类的getPriority()方法。该方法返回一个整数值,表示线程的优先级,其范围从1到10,其中1是最低优先级,10是最高优先级。例如:
```
Thread t = new Thread();
int priority = t.getPriority();
System.out.println("线程的优先级为:" + priority);
```
如果需要设置线程的优先级,则可以使用Thread类的setPriority(int priority)方法。例如:
```
Thread t = new Thread();
t.setPriority(8);
```
以上代码将线程t的优先级设置为8。需要注意的是,线程的优先级只是给操作系统一个提示,操作系统不一定会按照优先级来调度线程。因此,不能过度依赖线程的优先级来控制程序的行为。