어디서 뭐 보는데

thread Threads3 = thread([&](int nParam)

{

for (int i = 20; i < 25; ++i)

{

mtx_lock.lock();

cout << "Thread3 Num : " << i << endl;

mtx_lock.unlock();

}

},4 

);


이런애가나옴

근데 람다함수보면 (int nParam) 이거랑 마지막에 ,4

이거 안쓰이는거같은데 맞나? 왜있는거임?

--------------------------------------

글고 lock에관한 질문인데

쓰레드1

{락 / 출력1~10 / 락해제}

쓰레드2

{락 / 출력20~30 / 락해제}

쓰레드3

{락 / 출력30~40 / 락해제}

이렇게 짜여있다고할때


이 락과 락해제라는게

출력1~10 -> 출력20~30 -> 출력 30~40 

이렇게되는거임?

아니면


출력 1 -> 20 -> 30       ->      2 -> 21 -> 31 .......

이렇게되는거임?


내가직접해보면 전자인데 예제설명문엔 후자로나와있어서;;

환경에따라다른건가?