[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 380

 
Zhunko :
프로그래밍 언어로 큐를 구성하는 방법은 프로그래머에 따라 다릅니다. 커널 수준에서 대기하는 것은 시스템에 의해 시행되며 보장되지 않습니다.


자, 여기 있습니다. 조금 전에 표시된 코드에서는 순서가 구성되어 있지 않습니다. 그리고 시스템이 보장되지 않는다는 사실 - 이것이 우리가 말하는 것이며 우리 스스로해야 할 일입니다. 그러나 어떤 경우에는 수행하기 쉽고 간단하며 어떤 경우에는 많은 코드가 필요하고 이를 위한 특별한 도구가 없기 때문에 생각해야 합니다.

Vadim, 당신은 대화를 흥미롭게 진행하는 방식을 가지고 있습니다. 당신은 대화가 무엇에 관한 것인지 또는 그런 특별한 지혜에 대해 잊어 버린 것 같습니다. 첫째, 그들은 코드를 보여주고 순서가 준수되었다고 주장하기 시작했습니다. 이제 그들은 그것이 보장되지 않는다는 tzis-postulate를 제시합니다 ... 때때로 당신은 자신과 모순되지만 이것은 마음의 유연성이 아닙니다.

 
Integer :


자, 여기 있습니다. 조금 전에 표시된 코드에서는 순서가 구성되어 있지 않습니다. 그리고 시스템이 보장되지 않는다는 사실 - 이것이 우리가 말하는 것이며 우리 스스로해야 할 일입니다. 그러나 어떤 경우에는 수행하기 쉽고 간단하며 어떤 경우에는 많은 코드가 필요하고 이를 위한 특별한 도구가 없기 때문에 생각해야 합니다.

Vadim, 당신은 대화를 흥미롭게 진행하는 방식을 가지고 있습니다. 당신은 대화가 무엇에 관한 것인지 또는 그런 특별한 지혜에 대해 잊어 버린 것 같습니다. 첫째, 그들은 코드를 보여주고 순서가 존중된다고 주장하기 시작했습니다. 이제 그들은 그것이 보장되지 않는다는 논제를 내놓았습니다 ... 때로는 자신이 모순되지만 이것은 마음의 유연성이 아닙니다.

딤, 다시 주장? 순서는 시스템의 능력에 따라 존중됩니다. 시스템에서 그 밖의 무엇을 요구할 수 있습니까?

더 이상 대기열을 구성할 필요가 없었습니다. 시스템 기능은 충분합니다. 왜냐하면 커널 수준에서 대기열을 보장하지 않기 때문에 쉽지 않기 때문입니다. 그러나 원자적 실행은 보장됩니다.

 
Zhunko :

딤, 다시 주장? 순서는 시스템의 능력에 따라 존중됩니다. 시스템에서 다른 무엇을 요구할 수 있습니까?

더 이상 대기열을 구성할 필요가 없었습니다. 시스템 기능은 충분합니다. 왜냐하면 커널 수준에서 대기열을 보장하지 않기 때문에 쉽지 않기 때문입니다. 그러나 원자적 실행은 보장됩니다.

시스템의 기능에 따르면 주문이 제공되지 않습니다. 그러나 당신은 그것이 제공되었다고 주장하기 시작했습니다. 그런 다음 그들은 그것이 보장되지 않는다는 것을 증명하기 시작했습니다. 이제 관대함은 사라졌습니다 - 이것은 시스템의 능력에 따른 것입니다 :) 순서를 보장할 필요가 전혀 없다는 사실은 프로그래밍에 대한 원칙적인 접근 방식에 달려 있습니다. 알려진 라이브러리의 일부 기능에는 대기열이 필요합니다. 보장된 순서가 제공되지 않으므로 축하합니다! 나는 불만이 없습니다. 그저 눈보라를 일으키고 모든 것을 미스터리, 비밀, 그리고 그 너머에 있는 어떤 신화로 부채질하지 마십시오.

 
감사해요!!
 
Integer :

시스템의 기능에 따르면 주문이 제공되지 않습니다. 그러나 당신은 그것이 제공되었다고 주장하기 시작했습니다. 그런 다음 그들은 그것이 보장되지 않는다는 것을 증명하기 시작했습니다. 이제 관대함은 사라졌습니다 - 이것은 시스템의 능력에 따른 것입니다 :) 순서를 보장할 필요가 전혀 없다는 사실은 프로그래밍에 대한 원칙적인 접근 방식에 달려 있습니다. 알려진 라이브러리의 일부 기능에는 대기열이 필요합니다. 보장된 순서가 제공되지 않으므로 축하합니다! 나는 불만이 없습니다. 그저 눈보라를 일으키고 모든 것을 미스터리, 비밀, 그리고 그 너머에 있는 어떤 신화로 부채질하지 마십시오.

시스템은 대기열이 사용자가 원하지 않는 순서로 실행되고 실행 대기 중인 모듈의 대기열 순서와 일치하지 않는지 확인합니다. 대기열 부족이라고 하나요?

나에게 모든 대기열은 대기열입니다. 커널 수준에서 실행 대기열을 포함합니다. 그녀는 블랙박스입니다. 그대로 가져 가라. 주문과 함께 자신의 대기열이 필요합니다. 직접 구성하십시오.

해당 라이브러리에서는 특별한 실행 순서가 필요하지 않습니다. 다른 동기화 개체를 사용합니다. 어떤 순서로 실행되는지는 중요하지 않습니다. 당신은 그것에 대해 생각할 필요가 없습니다. 시스템은 모든 것을 스스로 할 것입니다.

나는 비밀을 이해하지 못했다. 또 판타지? :-))

 
Zhunko :

1. 시스템은 대기열이 사용자가 원하지 않는 순서로 실행되고 실행을 기다리고 있는 모듈의 대기열 순서와 일치하지 않는지 확인합니다. 대기열 부족이라고 하나요?

2. 저에게 모든 대기열은 대기열입니다. 커널 수준에서 실행 대기열을 포함합니다. 그녀는 블랙박스입니다. 그대로 가져 가라. 자신의 주문과 함께 자신의 대기열이 필요합니다. 직접 구성하십시오.

3. 해당 라이브러리에는 특별한 실행 순서가 필요하지 않습니다. 다른 동기화 개체를 사용합니다. 어떤 순서로 실행되는지는 중요하지 않습니다. 당신은 그것에 대해 생각할 필요가 없습니다. 시스템은 모든 것을 스스로 할 것입니다.

4. 미스터리를 이해하지 못했습니다. 또 판타지? :-))


1. 원자적 액세스를 보장한다는 것은 균일한 액세스 순서를 제공한다는 것을 의미하지 않습니다. 함수를 호출하는 순서는 거의 임의적이며, 이는 언젠가 일부 함수가 누락되지 않을 가능성을 배제하지 않습니다.

2. 블랙박스는 아니지만 완전히 부재. 처형 순서는 할머니가 7층에서 재채기를 하는 것과 같다.

3. 다만, 모든 기능의 균일한 실행(좀 더 정확하게는 번들에 있는 단말에 대한 접근)이 필요하다. 때로는 너무 인상적이어서 대화 내용을 이해하지 못할 때도 있습니다. 즉, 아닙니다. 그리고 항상 그런 프릴과 함께 ... 그건 아닌, 즉, 다른 방식으로 그리고 그렇지 않고 그렇지 않은 ...

4. Vadim, 당신은 당신이 혼란 스러웠는지, 얼마나 혼란 스러웠는지 이해하지 못했습니다.

 
프로세서 코어를 많이 샀습니다. 그리고 이제 우리는 대기열에 있는 누구를 위한 것인지 알아내지 못할 것입니다)))))))))
 
Integer :


1. 원자적 액세스를 보장한다는 것은 균일한 액세스 순서를 제공한다는 것을 의미하지 않습니다. 함수가 호출되는 순서는 거의 무작위이며, 일부 함수가 누락되지 않을 가능성을 배제하지 않습니다.

2. 블랙박스는 아니지만 완전히 부재. 처형 순서는 할머니가 7층에서 재채기를 하는 것과 같다.

3. 다만, 모든 기능의 균일한 실행(좀 더 정확하게는 번들에 있는 단말에 대한 접근)이 필요하다. 때로는 너무 인상적이어서 대화 내용을 이해하지 못할 때도 있습니다. 즉, 아닙니다. 그리고 항상 그런 프릴과 함께 ... 그건 아닌, 즉, 다른 방식으로 그리고 그렇지 않고 그렇지 않은 ...

4. Vadim, 당신은 당신이 혼란 스러웠는지, 얼마나 혼란 스러웠는지 이해하지 못했습니다.

요점을 나눴던 것 같은데 의미에 따라 답이 안 나오네요. 예, 대답할 필요가 없습니다. 나는 당신을 위해 대기열과 실행 순서가 동일하다는 것을 깨달았습니다. 그래서 당신은 내가 말하는 것을 이해하지 못합니다.

균일한 실행이 필요한 경우 단일 스레드를 사용합니다. 그러면 동기화가 필요하지 않습니다. 실행 시간 과 개수를 알 수 없는 스레드의 균일한 실행을 어떻게 보장할 수 있습니까?

저에게는 모든 것이 간단합니다. 프로그래밍 과학에서 예상한 대로 보호된 블록의 진입 및 퇴장. 특별한 대기열에 대해 걱정할 필요가 없습니다. 언젠가는 이것을 이해하게 될 것입니다.

예, 여전히 선택에 대해 매우 잘못 알고 있습니다. 올바르게 수행된 동기화(즉, 코드 및 논리 오류 없이)는 모든 스레드를 실행합니다. 이것은 실행 순서와 반대로 시스템에 의해 보장됩니다.

 
Zhunko :

1. 요점을 나누어 놓은 것 같은데 뜻대로 대답을 하지 않고 있습니다. 예, 대답할 필요가 없습니다. 나는 당신을 위해 대기열과 실행 순서가 동일하다는 것을 깨달았습니다. 그래서 당신은 내가 말하는 것을 이해하지 못합니다.

2. 균일한 실행이 필요한 경우 단일 스레드를 사용합니다. 그러면 동기화가 필요하지 않습니다. 실행 시간과 횟수를 알 수 없는 스레드의 균일한 실행을 어떻게 보장할 수 있습니까?

3. 모든 것이 나에게 간단합니다. 프로그래밍 과학에서 예상한 대로 보호된 블록의 진입 및 퇴장. 특별한 대기열에 대해 걱정할 필요가 없습니다. 언젠가는 이것을 이해하게 될 것입니다.

4. 예, 당신도 선택에 대해 매우 잘못 알고 있습니다. 올바르게 수행된 동기화(즉, 코드 및 논리에 오류가 없음)는 모든 스레드를 실행합니다. 이것은 실행 순서와 반대로 시스템에 의해 보장됩니다.


1. 이해에 문제가 있는 것 같습니다. 대화 내용을 이해합니다.

2. 감사하지만 조언을 구하지 않았습니다. 게다가 대화는 더 이상 같은 스레드에 없는 것을 동기화하는 것입니다.

3. 그리고 과학에서도 그래야 합니다. 무슨 과학으로? 스스로? 언젠가는 필요한 것이 무엇인지 이해하게 될 것이지만 그것에 대해 혼란스러운 것은 없습니다. 프로그래밍 언어와 알고리즘은 바보가 발명하고 만든 것이 아닙니다. 그러나 어떤 이유로 동기화 및 대기열 생성 도구가 제공됩니다.

4. 나는 별로 틀리지 않다. 맞다면 .... 동기화가 있었다면. 그러나 조금 전에 여기에 제공한 코드에는 동기화가 없고 원자적 액세스만 있습니다.

 
Zhunko :

대기열은 다른 언어와 마찬가지로 구성됩니다. 보호된 블록의 입력 및 출력 구성을 통해 자체적으로.

이것은 스크립트입니다:

다른 기능으로 교체하는 등의 감소를 희생시키면서 작동하지 않습니다. 이것이 원자적 접근인 이유입니다. MQL4에서는 하나의 함수만 이 작업을 수행할 수 있습니다.

잘 작동하는 것 같습니다. 일시 중지가 3000, 2000, 1000, 500, 300, 200인 6개의 스크립트를 업로드했습니다. 다음은 로그의 일부입니다.

19:58:36 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY 시작
19:58:37 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY 종료
19:58:37 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 시작
19:58:39 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 종료
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 시작
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 종료
19:58:39 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD 시작
19:58:43 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD 종료
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 시작
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 종료
19:58:43 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 시작
19:58:45 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 종료
19:58:45 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 시작
19:58:46 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 종료
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 시작
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 종료
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 시작
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 종료
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 시작
19:58:47 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 종료
19:58:47 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY 시작
19:58:48 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY 종료
19:58:48 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 시작
19:58:50 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 종료
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 시작
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 종료
19:58:50 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD 시작
19:58:54 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD 종료
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 시작
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 종료
19:58:54 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 시작
19:58:56 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 종료
19:58:56 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 시작
19:58:57 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 종료
19:58:57 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD 시작
19:59:00 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD 종료
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 시작
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 종료
19:59:00 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 시작
19:59:01 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 종료


다시 한번, 만일을 대비하여 잠수함의 탱크 안에 있고 여전히 헬멧을 쓰고 있는 사람들을 위해. 여기에는 원자적 액세스만 표시됩니다. 여기서 기능을 수행하는 순서는 바람이 부는 대로입니다. 이 코드는 함수의 균일한 실행을 제공하지 않습니다. 따라서 일부 기능이 아주 오랫동안 빠지지 않을 것이라는 보장은 없습니다. 프로세서의 주파수가 높다는 이유만으로 프로그래밍이 느리다는 것은 매우 높은 프로세서 주파수를 사용하더라도 터무니없는 일입니다.

사유: