多线程(一) —— 传统线程(Thread)的创建和计时器(Timer)

本文介绍了Java中创建线程的两种传统方式,包括各自的注意事项,尤其是`Thread.currentThread().getName()`用于获取线程名的重要性。此外,还探讨了计时器(Timer)的使用,如何周期性执行任务,并列举了Timer类的常用API及其作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传统线程两种创建方式

  1. 第一种
       new Thread(){
            @Override
            public void run() {

                //线程执行
                System.out.println(this.getName());
            }
        }.start();
  1. 第二种
       new Thread(new Runnable() {
            @Override
            public void run() {
                //线程执行
                System.out.println(Thread.currentThread().getName());
            }
        }).start();
简单说明:

在线程中this.getName() 和Thread.currentThread().getName(),this.getName()在第一种是没有问题,但是,在第二种方式中,是不可行的,因为,this 是获取当前对象,如果在第二种方式中如果再使用this 获取线程名,this 指向的是Runnable 对象不是Thread ,所以,如果使用第二种方式创建线程,应使用Thread.currentThread().getName()获取线程名,推荐,无论使用哪种方式的线程,最好都使用Thread.currentThread().getName()方式获取线程信息。

下面实现方式那个run方法会被调用
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("is run Runnable");
            }
        }){

            @Override
            public void run() {
                System.out.println("is run out Run");

            }
        }.start();

执行结果

       new Thread(new Runnable() {
            @Override
            public void run() {
                //不会执行
            }
        }){

            @Override
            public void run() {
                //会执行

            }
        }.start();

计时器(Timer)

在实际开发中我们有时会需要周期性的执行一段代码块,如每2分钟执行一次特定代码。

实现一个简单Timer

        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                //执行内容
                System.out.println("Time is run.....");
            }
        },0,200);

Timer 中的几个常用API 说明
1. public Timer(boolean isDaemon) 设置是否是守护线程
2. public void schedule(TimerTask task, long delay, long period)

第一个参数是要操作的方法
第二个参数是要设定延迟的时间
第三个参数是周期的设定,每隔多长时间执行该操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值