code: @Deprecated
      @SuppressWarnings("deprecation")
      public final void resume() {
          int ngroupsSnapshot;
          ThreadGroup[] groupsSnapshot;
          synchronized (this) {
              checkAccess();
              for (int i = 0 ; i < nthreads ; i++) {
                  threads[i].resume();
              }
              ngroupsSnapshot = ngroups;
              if (groups != null) {
                  groupsSnapshot = Arrays.copyOf(groups, ngroupsSnapshot);
              } else {
                  groupsSnapshot = null;
              }
          }
          for (int i = 0 ; i < ngroupsSnapshot ; i++) {
              groupsSnapshot[i].resume();
          }
      }
docs: Resumes all threads in this thread group.
  <p>
  First, the <code>checkAccess</code> method of this thread group is
  called with no arguments; this may result in a security exception.
  <p>
  This method then calls the <code>resume</code> method on all the
  threads in this thread group and in all of its sub groups.
  
  @exception  SecurityException  if the current thread is not allowed to
  access this thread group or any of the threads in the
  thread group.
  @see        java.lang.SecurityException
  @see        java.lang.Thread#resume()
  @see        java.lang.ThreadGroup#checkAccess()
  @since      JDK1.0
  @deprecated    This method is used solely in conjunction with
  <tt>Thread.suspend</tt> and <tt>ThreadGroup.suspend</tt>,
  both of which have been deprecated, as they are inherently
  deadlock-prone.  See {@link Thread#suspend} for details.