728x90 반응형 thread2 deadlock * t1 : m1->m2, t2 : m1->m2#include using namespace std;#include #include #include #include #include #include mutex m1;mutex m2;templateclass Lock_Guard{public: Lock_Guard(T& m) : _mutex(m) { cout lockGuard1(m1); cout lockGuard2(m2); cout lockGuard1(m1); cout lockGuard2(m2); cout -> 정상 실행, 결과 : (time table) * t1 : m1->m2, t2 : m2->m1#include using na.. 2024. 11. 26. Lock #include using namespace std;#include #include #include #include #include mutex m;vector v;void Push(){ for (int i = 0; i -> crash-> heap 영역에 동적 할당 받은 공간이 꽉 찰 경우 공간을 재할당 받아 데이터를 이동시키는 vector의 특징으로 인해t1이 v[0]의 주소를 0x0001에서 0x0009로 재할당 받아 이동해 갔는데도 불구하고 t2는 여전히 0x0001을 가리키고 있고 여기에 값을 쓰려다 crash가 발생 #include using namespace std;#include #include #include #include #include mutex m;vector v;void Push(.. 2024. 11. 12. 이전 1 다음 728x90 반응형