1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
 
#include "3vmw9.hpp"
 
 
 
 
 
using namespace std;
 
using namespace rv2;
 
 
 
mutx::t mut;
 
 
 
void fuc() {
 
    for (int i = 0; i < 1000; i++) {
 
        mut.lock();
 
        co_s("hello thr1");
 
        mut.unlock();
 
        Sleep(1); // #include <windows.h>
 
    }
 
}
 
void fuc2() {
 
    for (int i = 0; i < 1000; i++) {
 
        mut.lock();
 
        co_s("hello thr2");
 
        mut.unlock();
 
        Sleep(1);
 
    }
 
 
 
}
 
 
 
int main()
 
{
 
    thr::t thr_01(fuc);
 
    thr::t thr_02(fuc2);
 
 
 
 
 
    thr_01.join();
 
    thr_02.join();
 
 
 
}
cs


슬립이 없으면 For문 안에서 다른 쓰래드가 lock을 시도하기 전에 같은 쓰래드가 다시 lock을 하는것 같습니다. 즉

hello thr1

hello thr1

hello thr1

hello thr1

.... (스래드 1 종료후)

hello thr2

hello thr2

hello thr2

...

스래드 2 종료


1ms의 딜레이로 정상작동 확인했습니다. 혹시 자세히 아시는분은 댓글 달아주세요~

'Thread' 카테고리의 다른 글

[ C++ ] mutex 개념 및 예제  (0) 2019.01.26
[ C++ ] thread 개념 및 예제  (0) 2019.01.26
[12편-2] Modern C++ 정리: thread  (0) 2019.01.26
1.Modern C++ 정리: thread (펌)  (0) 2019.01.26

+ Recent posts