Pattern 0

        if(t == null)
            throw new IllegalArgumentException("Thread can not be null");
        t.interrupt()// interrupts the sleep()
            t.join(timeout);


Pattern 1

    while (thread != null && thread.isAlive()) {
      thread.interrupt();
        thread.join();


Pattern 2

        t.start();
        t.interrupt();
        t.join();


Pattern 3

        for (Thread t : threads) {
            t.interrupt();
            t.join();
        }


Pattern 4

                if (next.isAlive()) {
                    next.join();
                }


Pattern 5

        final Thread awaitThread = new Thread(new AwaitTask(pipe));
        awaitThread.join(200);
        assertTrue(awaitThread.isAlive());


Pattern 6

        while(tmp != null && tmp.isAlive()) {
            tmp.interrupt();
            ack_promise.setResult(null);
            try {
                tmp.join();
            }
            catch(InterruptedException e) {
            }
        }


Pattern 7

        sendThread.start();
        sendThread.join();
        assertFalse(sendThread.isAlive());


Pattern 8

        awaitThread.start();
        assertTrue(awaitThread.isAlive());
        awaitThread.join();


Pattern 9

            thread.start();
        for (Thread thread : threads) {
            thread.join();
            LOG.info("join on {} returned", thread.getName());
        }


Pattern 10

        awaitThread.start();
        awaitThread.join(200);
        awaitThread.join();


Pattern 11

        final Thread awaitThread = new Thread(new AwaitTask(pipe));
        awaitThread.start();
        awaitThread.join();


Pattern 12

        final Write writeRunnable = new Write(blockingChannel, "");
        final Thread writeThread = new Thread(writeRunnable);
        writeThread.join();


Pattern 13

        for (ThreadBase[] threads : args)
            for (Thread thread : threads)
                thread.join();


Pattern 14

        Thread t = new Thread(new InterruptedLockRunnable(lock));
        t.start();
        t.interrupt();
        t.join();


Pattern 15

        final Thread readThread = new Thread(readTask);
        readThread.start();
        readThread.join(200);
        assertTrue(readThread.isAlive());


Pattern 16

        final Thread thread = new Thread(terminationAwait);
        thread.start();
        assertTrue(thread.isAlive());
        thread.join();


Pattern 17

        for (Thread thread : threads) {
            thread.start();
        }
        for (Thread thread : threads) {
            thread.join();
        }


Pattern 18

        for (int i = 0; i < THREAD_COUNT; i++) {
            threads[inew MallocPerfTest(allocator);
        }
        for (Thread thread : threads) {
            thread.start();
        }
            thread.join();


Pattern 19

    Thread trd = new Thread(new Runnable() {
      public void run() {
        foo.value = 42;
      }
    });
    trd.start();
      trd.join();


Pattern 20

        Thread writeThread = new Thread(new Write(sslChannel, conduitMock));
        writeThread.start();
        writeThread.join();


Pattern 21

        Thread readThread = new Thread(readRunnable);
        readThread.start();
        readThread.join();
        assertEquals(0, readRunnable.getReadResult());


Pattern 22

            new Thread(new WaitAndUnpark(barrier, 300, parkerThread));
        waiterThread.start();
        waiterThread.join();
        parkerThread.join();


Pattern 23

        ThreadGroup group = new ThreadGroup("$$$");
        Thread thread = new Thread(group, new Test6657026());
        thread.start();
        thread.join();


Pattern 24

        final Read readRunnable = new Read(blockingChannel);
        final Thread readThread = new Thread(readRunnable);
        readThread.start();
        readThread.join();


Pattern 25

        final Thread writeThread = new Thread(writeRunnable);
        writeThread.start();
        channelMock.enableWrite(true);
        writeThread.join();


Pattern 26

        Thread readThread = new Thread(writeRunnable);
        Thread closeThread = new Thread(new CloseChannel(sslChannel));
        readThread.start();
        closeThread.start();
        readThread.join();


Pattern 27

        final WriteBufferArray writeRunnable = new WriteBufferArray(blockingChannel, "write""anything""...""like""this");
        final Thread writeThread = new Thread(writeRunnable);
        writeThread.start();
        channelMock.enableWrite(true);
        writeThread.join();
        assertEquals(24, writeRunnable.getWriteResult());


Pattern 28

        final Write writeRunnable = new Write(blockingChannel, "wait just 10 milliseconds");
        final Thread writeThread = new Thread(writeRunnable);
        writeThread.start();
        channelMock.enableWrite(true);
        writeThread.join();
        assertEquals(25, writeRunnable.getWriteResult());


Pattern 29

        final Read readRunnable = new Read(blockingChannel);
        final Thread readThread = new Thread(readRunnable);
        readThread.start();
        readThread.join();
        assertEquals(5, readRunnable.getReadResult());
        assertReadMessage(readRunnable.getReadBuffer()"read ");


Pattern 30

            Thread t1 = new Thread(new ThreadTest(false)"timeout-thr1");
            Thread t3 = new Thread(new ThreadTest(false)"timeout-thr3");
            t1.start();
            t3.start();
            t1.join();
            t3.join();


Pattern 31

        final T blockingChannel = createBlockingWritableByteChannel(channelMock, 0, TimeUnit.NANOSECONDS, 30000000, TimeUnit.NANOSECONDS);
        final Thread writeThread = new Thread(writeRunnable);
        writeThread.start();
        channelMock.enableWrite(true);
        writeThread.join();
        assertEquals(13, writeRunnable.getWriteResult());
        assertWrittenMessage(channelMock, "write... this");


Pattern 32

        final Read readRunnable = new Read(blockingChannel);
        final Thread readThread = new Thread(readRunnable);
        readThread.start();
        channelMock.setEof();
        readThread.join();
        assertEquals(20, readRunnable.getReadResult());
        assertReadMessage(readRunnable.getReadBuffer()"try with 1 nanosecon");


Pattern 33

        final Read readRunnable = new Read(blockingChannel);
        final Thread readThread = new Thread(readRunnable);
        readThread.start();
        channelMock.setReadData("read""all""this""message");
        readThread.join();
        assertEquals(18, readRunnable.getReadResult());
        assertReadMessage(readRunnable.getReadBuffer()"read""all""this""message");


Pattern 34

        final Read readRunnable = new Read(blockingChannel);
        final Thread readThread = new Thread(readRunnable);
        readThread.start();
        channelMock.setReadData("try with 1 nanoseconds");
        channelMock.setEof();
        readThread.join();
        assertEquals(20, readRunnable.getReadResult());
        assertReadMessage(readRunnable.getReadBuffer()"try with 1 nanosecon");


Pattern 35

        final T blockingChannel = createBlockingWritableByteChannel(channelMock, 0, TimeUnit.MILLISECONDS, 0, TimeUnit.MINUTES);
        final Write writeRunnable = new Write(blockingChannel, "");
        final Thread writeThread = new Thread(writeRunnable);
        writeThread.start();
        channelMock.enableWrite(true);
        writeThread.join();
        assertEquals(0, writeRunnable.getWriteResult());
        assertWrittenMessage(channelMock, "");