행렬의 곱셈을 쓰레드로 구하는 프로그램 작성중인데
main 인자가 없을경우에는
이런식으로 행열 입력받아서 랜덤으로 행렬을 만들고
인자를 두개이상 입력받앗을 경우 행렬을 곱하는걸 쓰레드로 작성하는 프로그램인데 이런 과제특성상 쓰레드의 작동을 확인하기 위해 계산식에 Sleep함수를 넣으라했거든
근데 좀 적은 수의 행렬이면 문제가 없는데 대략 80행 80열이 넘는시점부터 작동이 중지되버리는데
문제는 Sleep 함수가 없거나 Sleep(10)정도면 100행 100열도 문제없이 작동하는데 sleep(1000)이 되기만 하면 저렇게 사진처럼 작동을 멈춰 ㅠ
심지어 계산식이 문제일까 싶어서
void Calculate(Matrix m1, Matrix m2,int _Row,int _Col, int result[100][100])
{
//cout << _Row*m2.Column + _Col << "번쓰레드 작동" << endl;
Sleep(1000);
for (int i = 0; i < m1.Column; i++)
{
result[_Row][_Col] += (m1.mm[_Row][i] * m2.mm[i][_Col]);
}
//cout << _Row*m2.Column + _Col << "번 쓰레드 종료" << endl;
}
여기서 계산식 다 주석처리하고 Sleep만 남겨봤거든?
그래도 에러나버리더라 컴린이가 뭐가 문제인지조차 모르겟다 ㅠ 소스코드는 이미지파일 마지막으로 확장자명 바꿔서 올려둘게ㅠ 컴고수님들아 도움
좀
디버그 모드로 시작하고 오류 메세지 확인해보셈
그거 sleep시간이 길어서 OS에서 응답시간 체크해서 죽은건줄 아는거 같은데 그거 os단 설정 어캐하면 될텐데
디버그모드로 작동시켜보니
#endif } // // Hand it off to the OS: // EHTRACE_EXIT;#if defined(_M_X64) && defined(_NTSUBSET_) RtlRaiseException( (PEXCEPTION_RECORD) &ThisException );#else RaiseException( ThisException.ExceptionCode, ThisException.ExceptionFlags, ThisException.NumberParameters, (
그냥 글다시쓸게 ㅠ