특정 스레드에서 만든 특정 메모리 개체를 정리하려고합니다 (따라서 해당 스레드에서만 액세스 가능). 나를 달성 할 수있는 유일한 방법은 메모리 블록을 해제 할 때 특정 스레드로 전환하는 것입니다. 나는 원래 방식으로 메모리 컨텍스트의 생성과 파괴를 추가 한MFC 응용 프로그램 정리를위한 스레드 전환
alt text http://imagebin.ca/img/DeTe9Z6h.jpg
: http://imagebin.ca/img/S6mwZBFu.jpg
이 내가 할 시도한 것입니다 : 나는 특정 메모리 컨텍스트를 할당하는 방법
이
입니다 다음과 같이하십시오 :int Thread2::main()
{
CudaMemoryContext *theCudaObj = new CudaMemoryContext();
while(!TerminateStatus())
{
...
}
delete theCudaObj;
return 0;
}
그러나 ach가 잘 작동하지 않습니다. 즉, "delete theCudaObj;"에서 정리할 때 프로그램이 충돌합니다. 선. 정리할 때 활성 스레드를 전환 할 수 있는지 또는 두 스레드가 액세스 할 수 있도록 CUDA 컨텍스트를 할당 할 수 있는지 궁금합니다. 두 스레드를 통해 쉽게 정리하고 액세스 할 수 있습니다. 제안에 미리 감사드립니다.
다른 스레드에서 삭제하면 충돌을 피할 수 있다는 것을 어떻게 알 수 있습니까? 충돌의 문제가 스레딩과 관련이없는 것처럼 보입니다. –
피할 수 있는지 모르겠습니다. 문제가 적절한 메모리 컨텍스트에서 cuda 메모리 컨텍스트를 삭제할 수있는 것 같습니다. – stanigator