선점 형 멀티 스레딩 here 및 here에 대해 읽었습니다.Delphi의 선점 형 멀티 스레딩
델파이에서이를 수행 할 방법이 있습니까? (이점과 단점)을 other methods of threading in Delphi과 어떻게 비교합니까?
선점 형 멀티 스레딩 here 및 here에 대해 읽었습니다.Delphi의 선점 형 멀티 스레딩
델파이에서이를 수행 할 방법이 있습니까? (이점과 단점)을 other methods of threading in Delphi과 어떻게 비교합니까?
당신이 말하는 "다른 방법"은 운영 체제의 기본 스레딩 기능을 사용하는 것처럼 보입니다 - 선점적입니다. 즉, 가장 편리하다고 생각되는 것을 선택하면 선제 적입니다.
비 선점 (일명 협동) 스레딩을 얻으려면 일반적으로 스레드를 "광섬유"로 변환하여 약간의 추가 작업이 필요합니다.
최신 Windows 버전은 모두 preemptive multitasking 운영 체제입니다. 즉, 스레드와 프로세스 (프로세스가 존재해야하는 스레드가 하나 이상 있어야 함)가 모두 예약되고 선제 실행됩니다.
그래서 다음과 같은 답변을했다 "델파이에서이 작업을 수행 할 수있는 방법이있다"
다중 스레드 델파이 응용 프로그램을 작성하는 경우 귀하의 singlethreaded 델파이 응용 프로그램이 이미 선제 다른 응용 프로그램가장 좋은 대답은 사용 TThread하거나 주위에 어떤 native Windows thread 또는 래퍼입니다. 선점 형 멀티 스레딩이 있습니다.
귀하의 링크에있는 모든 모델은 정상적인 Windows 스레드를 사용하며 귀하의 질문이 귀하가 통신 또는 작업 실행을위한 기술 (다른 스레드에서 실행되는 작업)과 다른 스레딩 기술에 대해 혼동하고 있음을의 미합니다. 이 경우 질문을 업데이트하거나 다른 모델에 설명을 요청할 수 있습니다.
당신은 Windows 7에서 소개 된 User-Mode Scheduling을 보았습니까? 기본적으로 섬유는 실제로 작동하지 않습니다. MSDN 사이트에서 이에 대한 많은 정보가 있습니다. 채널 9에 대한 몇 가지 비디오를 회상하는 것 같습니다.
재미 있고 잘 알고 있습니다. 불행히도, 거의 모든 사용자가 Windows 7 이상을 사용할 때까지는 고려할 수 없습니다. 앞으로 몇 년이 걸릴 것입니다. – lkessler
+1, 매우 흥미 롭습니다. 나는 그것에 대해 듣지 못했다! lkessler, 아마 64 비트 Windows 7에서 실행되지 않는 경우 코드가 표준 스케줄링으로 돌아가는 하이브리드 방식을 사용할 수 있습니다. –
저를 위해 해 주셔서 감사합니다. 저를 버린 이유는 Windows 링크가 구현되기 전인 1994 년부터 PM 링크가 시도 된 특허임을 알지 못했기 때문에 델파이의 스레딩과는 다른 새로운 것을 이야기하고 있다고 생각했습니다. – lkessler
@lkessler : 그들이 1994 년에 나온 것이라면 아마 거절 당했을 것입니다 (OS/2는 그때까지 외박했습니다). 그들의 우선 날짜는 1982 년이다. 그들은 여전히 유효하지 않을 수도 있지만, 적어도 가능성은 있습니다. –