线程篇 --- Thread.currentThread(一)


老套路,先说作用,上源码

一、作用

Thread.currentThread是Thread的一个静态本地方法,本地方法就是可以调用其他语言,比如你可以调用你c++,c++再去调用你的Windows的执行程序等等。 先不用去纠结这个native本地方法是啥,不知道无所谓,不影响操作,先操作一通再说

这个方法,他返回一个当前正在运行的线程的实例对象,说白了,就是你当前正在运行的线程,你通过这个方法,就可以拿到她了,拿到你想要的线程之后,你就可以拿到她的电话号码、微信…(扯远了哈,反正就这么个意思)

二、源码

源码这个,暂时没啥好说的,他就是返回给你当前线程的实例对象而已

/**
     * Returns a reference to the currently executing thread object.
     *
     * @return  the currently executing thread.
     */
    public static native Thread currentThread();

三、总结

这里经常看到有人拿它做些对比,也顺便理一理,写在这。

3.1 Thread.currentThread().sleep(x) 和Thread.sleep(x)区别

一般来说,用sleep,都是用的Thread.sleep(x),如果要用前者,也没有错,只不过IDE会提示你,小伙子,这样做不太好哟
在这里插入图片描述

Static member 'java.lang.Thread.sleep(long)' accessed via instance reference less... (Ctrl+F1) 
Shows references to static methods and fields via class instance rather than a class itself.

就是说通过一个对象实例来调用它的静态方法,这是不太好的,咱们应该调用一个类的静态方法,而不是一个实例的静态方法,你平时写代码也没这么干过吧,那你定义这个静态来干嘛?好看?所以说,还是用前者吧,年轻人。
本质上来讲, 其实是没有区别的,其功效完全一样。不过呢, 一些代码检查工具会认为 前者有点问题。
While you can call a static method via an instance reference, it’s not good style ———— 这个就是代码检查工具提示判断的 依据。 不是一个好的 style。

3.2 Thread.currentThread()与this的区别

Thread.currentThread()==this一般情况下是成立的,但最好别这么想,这个得看具体代码。

为啥,因为,Thread的实例和普通对象一样,任何线程都可调用该实例的方法,如果是另外一个线程调用这个Thread的实例的方法,那就不会相等了。明显这个Thread.currentThread()就代表别的调用线程了,而不是被调用的这个线程了,Thread.currentThread()==this就不成立了。

一般来说,Thread.currentThread() 用于不方便使用this 的场合。 Thread.currentThread() 明确表明了它所针对的对象是 当前线程! 不是this! 当然,如果碰巧this 就是当前线程, 那也是没毛病的。

明白这两个实质代表的是啥就行,记住以下两点:

Thread.currentThread() 这个,拿到的始终是目前正在运行的线程
this,是那个实例,简单理解,就是这个this在哪个线程类代码里,这代表这个线程类的实例,这个不一定是当前正在运行的线程。(注意之前说的,其他线程调用这个线程的run方法,那么Thread.currentThread()就代表的是其他线程,因为是他在跑;this,就是这个线程,两者自然不相等啦)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值