code: public void processSpace(final Properties props) {
          WorkQueue workQueue = WorkQueue.getWorkQueue();
  
          Object key = workQueue.registerTaskGroup(dataVectors.size());
          // Process each word's context set in a worker thread.
          for (Map.Entry<String, List<SparseDoubleVector>> entry :
                  dataVectors.entrySet()) {
              // Get the root word being discriminated and list of observed
              // contexts.
              final String senseName = entry.getKey();
  
              List<SparseDoubleVector> contextsWithNoLength = entry.getValue();
              final List<SparseDoubleVector> contextSet = 
                  new ArrayList<SparseDoubleVector>(contextsWithNoLength.size());
              for (SparseDoubleVector v : contextsWithNoLength)
                  contextSet.add(Vectors.subview(v, 0, getVectorLength()));
              
              workQueue.add(key, new Runnable() {
                  public void run() {
                      clusterTerm(senseName, contextSet, props);
                  }
              });
          }
          workQueue.await(key);
          LOG.info("Finished processing all terms");
      }
docs: {@inheritDoc}