Java.lang.Thread.setContextClassLoader() 方法

描述

java.lang.Thread.setContextClassLoader() 方法为这个Thread设置上下文ClassLoader。上下文ClassLoader可以在创建线程时设置,并允许线程的创建者提供合适的类 loader 加载类和资源时在线程中运行的代码。


声明

以下是 java.lang.Thread.setContextClassLoader() 方法的声明。

public void setContextClassLoader(ClassLoader cl)

参数

cl − 这是此线程的上下文类加载器。


返回值

此方法不返回任何值。


异常

SecurityException − 如果当前线程无法设置上下文 ClassLoader。


示例

下面的例子展示了 java.lang.Thread.setContextClassLoader() 方法的使用。

package com.tutorialspoint;

import java.lang.*;

public class ThreadDemo implements Runnable {

   Thread t;

   ThreadDemo() {

      t = new Thread(this);
      // this will call run() function
      t.start();
   }

   public void run() {

      ClassLoader c = t.getContextClassLoader();
      // sets the context ClassLoader for this Thread
      t.setContextClassLoader(c);
      System.out.println("Class = " + c.getClass());
      System.out.println("Parent = " + c.getParent());
   }

   public static void main(String args[]) {
      new ThreadDemo();
   }
} 

让我们编译并运行上面的程序,这将产生下面的结果 −

Class = class sun.misc.Launcher$AppClassLoader
Parent = sun.misc.Launcher$ExtClassLoader@35a16869