¿Cómo ejecutar múltiples consultas en paralelo en lugar de secuencialmente?

Estoy consultando todas mis 10 tablas para obtener la identificación de usuario de ellas y cargando todas las identificaciones de usuario en HashSet para poder tener una identificación de usuario única.

A partir de ahora es secuencialmente. Vamos a una tabla y extraemos todo el user_id de ella y la cargamos en hash set y luego la segunda y tercera tabla y seguimos adelante.

    private Set<String> getRandomUsers() {
        Set<String> userList = new HashSet<String>();

        // is there any way to make this parallel?
        for (int table = 0; table < 10; table++) {
            String sql = "select * from testkeyspace.test_table_" + table + ";";

            try {
                SimpleStatement query = new SimpleStatement(sql);
                query.setConsistencyLevel(ConsistencyLevel.QUORUM);
                ResultSet res = session.execute(query);

                Iterator<Row> rows = res.iterator();
                while (rows.hasNext()) {
                    Row r = rows.next();

                    String user_id = r.getString("user_id");
                    userList.add(user_id);
                }
            } catch (Exception e) {
                System.out.println("error= " + ExceptionUtils.getStackTrace(e));
            }
        }

        return userList;
    }

¿Hay alguna manera de hacer esto multiproceso para que para cada tabla obtengan los datos de mi tabla en paralelo? Al final necesitouserList hashset que debería tener toda la identificación de usuario única de las 10 tablas.

Estoy trabajando con la base de datos Cassandra y la conexión se realiza solo una vez, por lo que no necesito crear varias conexiones.

Respuestas a la pregunta(2)

Su respuesta a la pregunta