multithreads + stream