线程操作的相关方法

线程操作的相关方法

Thread类中的主要方法

表:

序号方法名称类型描述
1public Thread(Runnable target)构造接收Runnable接口子类对象,实例化Thread对象
2public Thread(Runnable target,String name)构造接收Runnable接口子类对象,实例化Thread对象,并设置线程名称
3public Thread(String name)构造实例化Thread对象,并设置线程名称
4public static Thread currentThread()普通返回目前正在执行的线程
5public final String getName()普通返回线程的名称
6public final int getPriority()普通返回线程的优先级
7public boolean isInterrupted()普通判断目前线程是否被中断
8public final boolean isAlive()普通判断线程是否在活动
9public final void join() throws InterruptedException普通使线程强制运行,其他线程必须等待此线程完成才可以继续执行
10public final synchronized void join(long millis) throws InterruptedException普通使线程强制运行,等待millis毫秒,其他线程必须等待此线程完成才可以继续执行
11public void run()普通执行线程
12public final void setName(String name)普通设定线程名称
13public final void setPriority(int newPriority)普通设置线程的优先级
14public static void sleep(long millis) throws InterruptedException普通使目前正在执行的线程休眠millis毫秒
15public void start()普通开始执行线程
16public String toString()普通返回代表线程的字符串
17public static void yield()普通将目前执行的线程暂停,允许其他线程执行
18public final void setDaemon(boolean on)普通将一个线程设置成后台运行

currentThread()方法与getName()方法使用实例

例1、

class MyThread implements Runnable{
    public void run(){
        for(int i=0;i<3;i++){
            System.out.println(Thread.currentThread().getName()+"运行,i="+i);
        }
    }
}
public class Demo{
    public static void main(String[] args){
        MyThread my=new MyThread();
        new Thread(my).start();
        new Thread(my,"线程-A").start();
        new Thread(my,"线程-B").start();
        new Thread(my).start();
        new Thread(my).start();
    }
}
Thread-0运行,i=0
Thread-1运行,i=0
Thread-1运行,i=1
线程-B运行,i=0
线程-B运行,i=1
线程-B运行,i=2
线程-A运行,i=0
线程-A运行,i=1
Thread-1运行,i=2
Thread-2运行,i=0
Thread-0运行,i=1
Thread-0运行,i=2
Thread-2运行,i=1
Thread-2运行,i=2
线程-A运行,i=2

例2、

class MyThread implements Runnable{
    public void run(){
        for(int i=0;i<3;i++){
            System.out.println(Thread.currentThread().getName()+"运行,i="+i);
        }
    }
}
public class Demo1{
    public static void main(String[] args){
        MyThread my=new MyThread();
        new Thread(my,"线程").start();
        my.run();
    }
}
main运行,i=0
线程运行,i=0
main运行,i=1
main运行,i=2
线程运行,i=1
线程运行,i=2

可以看出主方法实际上也是一个线程。

Thread.sleep()方法使用实例

class MyThread implements Runnable{
    public void run(){
        for(int i=0;i<5;i++){
        	try {
    			Thread.sleep(500);
    		} catch (InterruptedException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
            System.out.println(Thread.currentThread().getName()+"运行,i="+i);
        }
    }
}
public class Demo1{
    public static void main(String[] args){
        MyThread my=new MyThread();
        new Thread(my,"线程").start();
    }
}

线程优先级

在Java的线程中使用setPriority()方法设置一个线程的优先级

序号定义描述表示的常量
1public static final int MiN_PRIORITY最低优先级1
2public static final int NORM_PRIORITY中等优先级,是线程默认的优先级5
3public static final int MAX_PRIORITY最高优先级10

线程根据其被设置的优先级的大小来决定哪个线程会先运行。但注意的是,并不一定线程的优先级高就一定会执行,哪个线程先执行将有CPU的调度决定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值