@Test
    public void testMultiThreadNonSingleton() throws InterruptedException {
        int threadNum = Runtime.getRuntime().availableProcessors();
        if (threadNum <= 1) {
            threadNum = 2;
        }
        int loop = 10000;
        ConcurrentHashMap<ListSPI, Boolean> cache = new ConcurrentHashMap<>();
        List<Thread> threads = new ArrayList<>(threadNum);
        for (int i = 0; i < threadNum; i++) {
            Thread arrayList = new Thread(() -> {
                for (int j = 0; j < loop; j++) {
                    cache.put(ExtensionLoader.getExtensionLoader(ListSPI.class).getJoin("arrayList"), true);
                }
            });
            arrayList.start();
            threads.add(arrayList);
        }
        for (Thread thread : threads) {
            thread.join();
        }
        assertEquals(threadNum * loop, cache.size());
    }
test loadResources url IO Exception case.

@throws NoSuchMethodException  the no such method exception
@throws MalformedURLException  the malformed url exception
@throws IllegalAccessException the illegal access exception
shenyu-spi/src/test/java/org/apache/shenyu/spi/ExtensionLoaderTest.java