2개 또는 22개의 스레드는 동기식 또는 비동기식일 수 있습니다. 단일 스레드에는 동기 및 비동기 작업이 모두 포함될 수 있습니다. 당신 자신이 방법을 표시했습니다. 병렬로 켤 수 없습니다.
네, 그렇습니다. 단일 스레드에서 병렬 컴퓨팅 을 활성화할 수 없습니다. 동기 및 비동기 작업은 하나 이상의 스레드에서 수행할 수 있습니다. 단, 단일 스레드 비동기는 기본적으로 다중 스레드 비동기보다 안정성이 떨어지는 최적화된 작업 시퀀스입니다. 하나의 스레드가 실패하더라도 시스템은 계속 작동하고 중지된 프로세스의 작업은 운영성을 유지하면서 나머지 프로세스에 분산될 수 있습니다. 그리고 스레드가 하나만 있는 경우 시스템이 실패하면 kaput합니다.)
2개 또는 22개의 스레드는 동기식 또는 비동기식일 수 있습니다. 단일 스레드에는 동기 및 비동기 작업이 모두 포함될 수 있습니다. 당신 자신이 방법을 표시했습니다. 병렬로 켤 수 없습니다.
예: 동기 함수는 1 스레드에서 실행되어 2, 3, 4 스레드의 데이터를 기다리고, 5, 6, 7, 8 스레드에 분산된 함수는 실행 결과를 기다리고 있습니다.
우리는 모두 함께 서서 결과를 기다립니다. 이제 - 주의: 동기 함수가 스레드의 데이터를 기다리면 어떻게 될까요? 그리고 신이시여, 이러한 데이터는 결과에 달려 있습니까?
아니, 전부는 아니다.
예: 동기 함수는 1 스레드에서 실행되어 2, 3, 4 스레드의 데이터를 기다리고, 5, 6, 7, 8 스레드에 분산된 함수는 실행 결과를 기다리고 있습니다.
우리는 모두 함께 서서 결과를 기다립니다. 이제 - 주의: 동기 함수가 스레드의 데이터를 기다리면 어떻게 될까요? 그리고 이런 데이터는 결과에 따라 달라집니다.
좋아, 나는 스스로 대답할 것이다:
캔버스가 깜박이기 시작합니다.
MT 개발 회사의 담당자가 이미 답변한 내용을 번역하고 있습니다.
MQL에서 흐름을 만들 수 없습니다. WinAPI를 사용하더라도.
자신의 DLL을 작성해야만 이 작업을 수행할 수 있습니다.
예, MQL5\Include\WinAPI\processthreadsapi.mqh에 래퍼가 있습니다.
HANDLE CreateThread(PVOID thread_attributes, ulong stack_size, PVOID 시작 주소, PVOID 매개변수, uint creation_flags, uint &thread_id);
그러나 MQL을 통해 스레드로 다음에 무엇을 해야 할까요? 따라서 그들은 DLL을 만들고 거기에서 작업하는 것이 필요하다고 썼습니다.
예: 동기 함수는 1 스레드에서 실행되어 2, 3, 4 스레드의 데이터를 기다리고, 5, 6, 7, 8 스레드에 분산된 함수는 실행 결과를 기다리고 있습니다.
우리는 모두 함께 서서 결과를 기다립니다. 이제 - 주의: 동기 함수가 스레드의 데이터를 기다리면 어떻게 될까요? 그리고 신이시여, 이러한 데이터는 결과에 달려 있습니까?
알렉세이 타라바노프 :
좋아, 나는 스스로 대답할 것이다:
캔버스가 깜박이기 시작합니다.
강조 표시된 것은 의미상 의미가 없습니다.
다른 스레드의 경우 데이터가 준비될 때까지 대기합니다. 아무것도 깜박이지 않습니다.