    @Test
    public void execute_multipleRunnablesIndependent_executionSuccessful() throws Exception {

        // Arrange
        final Semaphore semaphore = new Semaphore(-1);
        Runnable runnable1 = new Runnable() {
            @Override
            public void run() {
                semaphore.release();
            }
        };
        Runnable runnable2 = new Runnable() {
            @Override
            public void run() {
                semaphore.release();
            }
        };
        // Act
        SUT.post(runnable1);
        SUT.post(runnable2);
        // Assert
        semaphore.acquireUninterruptibly();
    }