Java中Thread中的常用方法

测试Thread中常用的方法:

1、start():启动当前线程;调用当前线程的run();

2、run():通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中;

3、currentThread():静态方法,返回执行当前代码的线程;

4、getname():获取当前线程的名字;

5、setname():设置当前线程的名字;

6、yield():释放当前cpu的执行权;

(此时需要注意cpu释放该线程后不一定会被其他线程占用,也可能又分给该线程)

7、join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才结束阻塞状态。

8、stop():已过时,当执行此方法时,强制结束当前线程;(看看就行/偷笑)

9、sleep(long millitime):让当前线程“睡眠”指定的millitime(毫秒),在指定的millitime毫秒时间内,当前线程是阻塞的。

10、isAlive():判断当前线程是否存活。

//用实现Runnable接口的方法创建第一个线程
class MyTreadMthods implements Runnable{

//    run():通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中;
    @Override
    public void run() {

        for (int i = 0; i < 30; i++) {//输出0~7中7的倍数

            if (i % 7 == 0){//getname():获取当前线程的名字;

//  sleep(long millitime):让当前线程“睡眠”指定的millitime(毫秒)
// ,在指定的millitime毫秒时间内,当前线程是阻塞的。
                try {
                    Thread.currentThread().sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread().getName() + ":" + i);
            }
//            if (i > 21){
//                //释放当前cpu的执行权;
//                Thread.currentThread().yield();
//            }
        }
    }
}

//用实现Runnable接口的方法创建第二个线程
class MyTreadMthods1 implements Runnable{

    @Override
    public void run() {

        for (int i = 0; i < 30; i++) {//输出0~7中7的倍数

            if (i % 7 == 0){//getname():获取当前线程的名字


                System.out.println(Thread.currentThread().getName() + ":" + i);

            }
        }
    }
}

public class ThreadMthods {

    public static void main(String[] args) {
        MyTreadMthods mthods = new MyTreadMthods();
        MyTreadMthods1 mthods1 = new MyTreadMthods1();

        Thread thread = new Thread(mthods);
        Thread thread1 = new Thread(mthods1);

        //setname():设置当前线程的名字;
        thread1.setName("线程一");

        //start():启动当前线程;调用当前线程的run();
        thread.start();

//        thread1.start();

        for (int i = 0; i < 30; i++) {//输出0~7中7的倍数

            if (i % 7 == 0){//getname():获取当前线程的名字;
                System.out.println(Thread.currentThread().getName() + ":" + i);
            }
            
//         join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,
//         直到线程b完全执行完以后,线程a才结束阻塞状态。
            if(i == 14){
                try {
                    thread.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }

//      isAlive():判断当前线程是否存活。
        System.out.println(thread.isAlive());
    }
}

 此为输出结果,运行时,当main线程到14时,Thread-0线程每隔一秒出现一个,join()方法运行后,main线程阻塞,直到Thread-0线程运行完成,所以最后判断Thread-0是否存活时是:false

main:0
main:7
main:14
Thread-0:0
Thread-0:7
Thread-0:14
Thread-0:21
Thread-0:28
main:21
main:28
false

Process finished with exit code 0

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值