关于线程问题

关于线程问题

private static String basePath=Thread.currentThread().getContextClassLoader().getResource("").getPath();

这个能依次解释一下吗?还有无法理解线程。为什么说是使用了线程呢?

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,还可以通过这样的方式获取到,比如:

private static String basePath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
private static String basePath1 = ImageUtil.class.getResource("/").getPath();

如上所示,这两个操作都可以动态获取项目发布后的地址,这只是一个方法,现在会用就可以。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕小班 2020-05-29 10:28:11

同学你好,  1、线程是操作系统能够进行运算调度的最小单位。也就是说不同的对象执行不同的任务,是由不同的线程完成的。

    2、Thread.currentThread()这条语句获取的是当前正在运行的线程。使用Thread.currentThread().getContextClassLoader().getResource("")    得到的是当前对象中的路径,这样直接获取的地址,使得获取地址的代码更加灵活。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 焰痕 #1
    不同IP地址的用户所用的线程不同是吗?
    2020-05-29 11:03:06
  • 好帮手慕小班 回复 提问者 焰痕 #2
    同学你好,是的,不同的地址的用户,对应的线程是不同的。 如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
    2020-05-29 14:34:08
  • 提问者 焰痕 回复 好帮手慕小班 #3
    除了用线程,还有其他方法来得到的是当前对象中的路径吗?
    2020-05-29 17:48:33
好帮手慕小班 2020-05-28 18:16:09

同学你好,1、getResource()是查找带有给定名称的资源,而getResource("")则是查找当前类所在的目录,它的返回值就是对应的资源(包含路径)。

getPath 也是返回路径,返回定义时的路径,也就是构造参数的路径。

    2、使用线程和调用线程其实是一个意思。都是当前对象调用了ImageUtil,basePath就会返回当前对象的路径。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 焰痕 #1
    我的意思是为什么是使用线程来获取路径?线程具体代表的是什么意思?
    2020-05-28 20:24:44
好帮手慕小班 2020-05-28 17:19:50

同学你好,1、对于这段代码,同学可以参考如下内容来理解:

    Thread.currentThread()-->返回当前执行的线程内容。

    getContextClassLoader();-->当前线程的类加载器,对应Thread.currentThread().getContextClassLoader();就是获取当前上下文的类加载器。

    getResource("")-->获取资源文件的路径.

    综上所述,Thread.currentThread().getContextClassLoader().getResource("")    得到的是当前ClassPath的绝对URI路径。

    2、如上所示,每一个调用ImageUtil、basePath时,都会由调用者的线程对象来获取到对应的URI路径。

http://img1.sycdn.imooc.com//climg/5ecf80ce09ba57a807430104.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 焰痕 #1
    getResource("")是获取资源文件的路径.那getPath()是什么? 还有为什么说是使用了线程呢?应该说在什么情况下是调用线程?
    2020-05-28 17:24:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师