public static HazelcastInstance getOrCreateHazelcastClient() {
        return getOrCreateClientInternal(null);
    }
@Test
    public void testGetOrCreateHazelcastClientConcurrently() throws ExecutionException, InterruptedException {
        String instanceName = randomString();
        ClientConfig config = new ClientConfig();
        config.setInstanceName(instanceName);

        int clientCount = 10;
        List<HazelcastInstance> clients = Collections.synchronizedList(new ArrayList<>(clientCount));
        List<Future<?>> futures = new ArrayList<>(clientCount);
        for (int i = 0; i < clientCount; i++) {
            futures.add(spawn(() -> {
                clients.add(HazelcastClient.getOrCreateHazelcastClient(config));
            }));
        }
        for (int i = 0; i < clientCount; i++) {
            futures.get(i).get();
        }
        assertEquals(clientCount, clients.size());
        for (int i = 1; i < clientCount; i++) {
            assertEquals(clients.get(0), clients.get(i));
        }
    }