src/main/java/com/googlecode/junittoolbox/MultithreadingTester.java
public void run() {
        if (runnableAsserts.size() > numThreads) {
            throw new IllegalStateException("You added more RunnableAsserts (" + runnableAsserts.size() + ") than the number of threads (" + numThreads + ") configured for this MultithreadingTester");
        }
        if (runnableAsserts.isEmpty()) {
            throw new IllegalStateException("You must add at least 1 RunnableAssert before you can call run()");
        }
        MultiException me = new MultiException();
        startMonitorThread(me);
        try {
            startWorkerThreads(me);
            joinWorkerThreads();
        } finally {
            stopMonitorThread();
        }
        me.throwIfNotEmpty();
    }
/**
     * Starts multiple threads, which execute the added {@link RunnableAssert}s
     * several times. This method blocks until all started threads are finished.
     * If an <code>Exception</code> or <code>Error</code> is caught in any
     * of the started threads, this method will also throw an <code>Exception</code>
     * or <code>Error</code>.
     *
     * @see #numThreads(int)
     * @see #numRoundsPerThread(int)
     */
Starts multiple threads, which execute the added  RunnableAsserts
several times. This method blocks until all started threads are finished.
If an Exception or Error is caught in any
of the started threads, this method will also throw an Exception
or Error.


Starts multiple threads which execute the added RunnableAsserts several times . This method blocks until all started threads are finished . If an Exception or Error is caught in any of the started threads this method will also throw an Exception or Error .
public void run() {
        if (runnableAsserts.size() > numThreads) {
            throw new IllegalStateException("You added more RunnableAsserts (" + runnableAsserts.size() + ") than the number of threads (" + numThreads + ") configured for this MultithreadingTester");
        }
        if (runnableAsserts.isEmpty()) {
            throw new IllegalStateException("You must add at least 1 RunnableAssert before you can call run()");
        }
        MultiException me = new MultiException();
        startMonitorThread(me);
        try {
            startWorkerThreads(me);
            joinWorkerThreads();
        } finally {
            stopMonitorThread();
        }
        me.throwIfNotEmpty();
    }
public void run ( ) { if ( runnableAsserts . size ( ) > numThreads ) { throw new IllegalStateException ( "You added more RunnableAsserts (" + runnableAsserts . size ( ) + ") than the number of threads (" + numThreads + ") configured for this MultithreadingTester" ) ; } if ( runnableAsserts . isEmpty ( ) ) { throw new IllegalStateException ( "You must add at least 1 RunnableAssert before you can call run()" ) ; } MultiException me = new MultiException ( ) ; startMonitorThread ( me ) ; try { startWorkerThreads ( me ) ; joinWorkerThreads ( ) ; } finally { stopMonitorThread ( ) ; } me . throwIfNotEmpty ( ) ; }
Starts multiple threads, which execute the added {@link RunnableAssert}s
 several times.
Starts multiple threads which execute the added { @link RunnableAssert } s several times .