Java多线程常用方法

1.getName(); 返回该线程的名称。

2.currentThread();返回对当前正在执行的线程对象的引用。

3.isAlive();测试线程是否处于活动状态。

4.sleep();线程休眠。

5.setPriority(int newPriority);更改线程的优先级。

6.yield();暂停当前正在执行的线程对象,并执行其他线程。

实例如下:

测试getName(); 返回该线程的名称。

currentThread();返回对当前正在执行的线程对象的引用。

public class Demo1 implements Runnable{
    public void run() {
        for(int i=0;i<10;i++){
            // 获取当前线程
            Thread t=Thread.currentThread();
            System.out.println(t.getName()+":"+i); // 返回线程的名称
        }
    }
    //测试返回线程的名称
    public static void main(String[] args) {
        Demo1 demo1=new Demo1();
        new Thread(demo1).start();
        new Thread(demo1).start();
        new Thread(demo1,"线程3").start();
    }
 
}
测试isAlive();测试线程是否处于活动状态。

public class Demo2 implements Runnable{
 
    public void run() {
        for(int i=0;i<10;i++){
            // 获取当前线程
            Thread t=Thread.currentThread();
            System.out.println(t.getName()+":"+i); // 返回线程的名称
        }
    }
     
    public static void main(String[] args) {
        Demo2 demo2=new Demo2();
        Thread t1=new Thread(demo2);
        System.out.println("t1是否活动:"+t1.isAlive());
        t1.start();
        System.out.println("t1是否活动:"+t1.isAlive());
    }
}
测试 setPriority(int newPriority);更改线程的优先级。

public class Demo4 implements Runnable{
 
    public void run() {
        // TODO Auto-generated method stub
        for(int i=0;i<10;i++){
            try {
                Thread.sleep(1000);
                // 获取当前线程
                Thread t=Thread.currentThread();
                System.out.println(t.getName()+":"+i); // 返回线程的名称
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
     
    public static void main(String[] args) {
        Demo4 demo4=new Demo4();
        Thread t1=new Thread(demo4,"线程A");
        Thread t2=new Thread(demo4,"线程B");
        Thread t3=new Thread(demo4,"线程C");
        t1.setPriority(Thread.MAX_PRIORITY);
        t2.setPriority(Thread.MIN_PRIORITY);
        t3.setPriority(Thread.NORM_PRIORITY);
        t3.start();
        t1.start();
        t2.start();
    }
 
}
测试 yield();暂停当前正在执行的线程对象,并执行其他线程。

public class Demo5 implements Runnable{
    public void run() {
        // TODO Auto-generated method stub
        for(int i=0;i<10;i++){
            try {
                Thread.sleep(100);
                // 获取当前线程
                Thread t=Thread.currentThread();
                System.out.println(t.getName()+":"+i); // 返回线程的名称
                if(i==5){
                    System.out.println("线程礼让:");
                    Thread.currentThread().yield();
                }
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
     
    public static void main(String[] args) {
        Demo5 demo1=new Demo5();
        new Thread(demo1,"线程A").start();
        new Thread(demo1,"线程B").start();
    }
 
}





猜你喜欢

转载自blog.csdn.net/lifupingcn/article/details/64128690