#include <cstdlib>
#include <omp.h>
#include <cstdio>
#include <thread>

#define THREADS 4
#define N 16

int main ( ) {
    int i;

#pragma omp parallel for num_threads(THREADS) 
    for (i = 0; i < N; ++i) {
        std::this_thread::sleep_for( std::chrono::milliseconds( 10*i ) );
    }
    return 0;
}
// thread 0 executes 4 sleeps: 0+1+2+3=6  - 60 ms
// .....
// thread 3 executes 4 sleeps: 12+13+14+15=54  - 540 ms