[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 380

 
Zhunko:
Como organizar a fila em uma linguagem de programação depende do programador. A fila em nível de núcleo é executada pelo sistema e não é garantida.


Então, aqui vamos nós. Em seu código mostrado um pouco antes, a fila não está organizada. E o que o sistema não garante é do que você está falando e o que você mesmo deve fazer. Mas em alguns casos é fácil e simples de fazer, e em alguns casos você terá que pensar e codificar muito, porque não há ferramentas especiais para isso.

Vadim, você tem uma maneira interessante de falar, é como se você esquecesse do que se tratava a conversa ou se você tivesse uma sabedoria especial. Primeiro você mostrou o código e argumentou que a ordem é respeitada, e agora você apresentou a tese-postulado de que ela não é garantida... Às vezes você se contradiz, mas isto não é flexibilidade de mente.

 
Integer:


E aí está. Em seu código mostrado um pouco antes, a fila de espera não está organizada. E o fato de que não é garimpado pelo sistema é o que estamos falando, e o que fazer por conta própria. Mas em alguns casos é fácil e simples de fazer, e em alguns casos você terá muito código e pensamento, porque não há ferramentas especiais para isso.

Vadim, você tem uma maneira interessante de falar, é como se você esquecesse do que se tratava a conversa ou se você tivesse uma sabedoria especial. Primeiro você mostrou o código e argumentou que a ordem é respeitada, e agora você apresentou a tese-postulado de que ela não é garantida... Às vezes você pode se contradizer, mas isso não é flexibilidade de espírito.

Dim, outra reclamação? A fila é respeitada de acordo com as capacidades do sistema. O que mais você pode exigir do sistema?

Nunca tive que organizar outras filas de espera. O sistema tem capacidade suficiente. Por alguma razão, eles não garantem filas de nível de núcleo. Mas a execução atômica é garantida.

 
Zhunko:

Dim, outra reclamação? A fila é mantida de acordo com a capacidade do sistema. O que mais você pode exigir do sistema?

Nunca precisei organizar nenhuma outra fila. O sistema tem possibilidades suficientes. Por alguma razão, eles não garantem filas de nível de núcleo. Mas a execução atômica é garantida.

Se de acordo com as capacidades do sistema, então a fila de espera não é assegurada. Mas você começou a argumentar que ela é fornecida. Então você começou a provar que isso não está assegurado. Agora temos a indulgência - que de acordo com as possibilidades do sistema:). O fato de que você nunca precisou fornecer uma seqüência depende de sua abordagem de princípio à programação. Algumas das funções de sua conhecida biblioteca exigem fila de espera. Como você não fornece uma fila garantida, parabéns! Não tenho nenhuma reclamação, só não preciso fazer um grande negócio e cobrir tudo com algum mito de mistério, sigilo e algo mais além de qualquer outra coisa.

 
Obrigado!!!
 
Integer:

Se de acordo com as capacidades do sistema, isso significa que a ordem não está assegurada. Mas você começou a argumentar que isso está garantido. Então você começou a provar que isso não está assegurado. Agora é a indulgência - que de acordo com as possibilidades do sistema:) O fato de que você nunca precisou fornecer uma seqüência depende de sua abordagem de princípio à programação. Algumas das funções de sua conhecida biblioteca exigem fila de espera. Como você não fornece uma fila garantida, parabéns! Eu não tenho nenhuma reclamação, apenas não faça um grande negócio e cubra tudo com algum mito de mistério, sigilo e algo mais além de qualquer outra coisa.

O sistema impõe uma fila em alguma ordem que você não gosta e que não corresponde à ordem de fila dos módulos que estão esperando para serem executados. É isso que você chama de ausência em fila?

Para mim, qualquer fila é uma fila. Incluindo a fila de execução em nível de kernel. É uma caixa preta. Tome-a pelo que ela é. Você precisa de sua própria fila com seu próprio pedido - arranje-a você mesmo.

Não há necessidade de um pedido especial nessa biblioteca. Eu utilizo diferentes objetos de sincronização. Não importa em que ordem é executada. Não é preciso pensar sobre isso. O sistema fará tudo por si só.

Não entendo o que quero dizer sobre ser misterioso. Novamente com a fantasia? :-))

 
Zhunko:

1. O sistema impõe uma fila em alguma ordem que você não gosta e que não corresponde à ordem de fila dos módulos que estão esperando para serem executados. É isso que você chama de ausência em fila?

2. Para mim, qualquer fila é uma fila. Incluindo a fila de execução em nível de kernel. É uma caixa preta. Aceite como está. Você precisa de sua própria fila com seu próprio pedido - organize-a você mesmo.

3. Não há necessidade nessa biblioteca de uma ordem especial de execução. Eu utilizo diferentes objetos de sincronização. Não importa em que ordem é executada. Não é preciso pensar sobre isso. O sistema fará tudo por si só.

4. Não entendo o que quero dizer sobre ser misterioso. Novamente com as fantasias? :-))


1. o fornecimento de acesso atômico não implica absolutamente fornecer qualquer ordem uniforme de acesso. A ordem de acesso às funções será praticamente acidental, o que não exclui que algumas funções não fiquem de fora em algum período de tempo.

2. Não uma caixa preta, mas completamente ausente. A ordem de execução é como a vovó do sétimo andar espirra.

No entanto, é necessário assegurar a execução igual de todas as funções (ou, mais precisamente, tratar os terminais em um pacote). Às vezes parece que você não entende do que estamos falando. Você tem, você não tem. E sempre com tal reviravolta... Se não há, então há, mas não é isso e não é assim...

4. Você, Vadim, está tão embrulhado que não entende no que está embrulhado, como está embrulhado e por quanto tempo...

 
Comprou um monte de núcleos de processador. E agora, qual deles deve fazer fila para )))))))))
 
Integer:


1. o fornecimento de acesso atômico não implica, de forma alguma, o fornecimento de qualquer ordem uniforme de acesso. A ordem na qual as funções são acessadas será quase aleatória, o que não exclui a possibilidade de que alguma função não seja deixada de fora em algum período de tempo.

2. Não uma caixa preta, mas completamente ausente. A ordem de execução é como a vovó do sétimo andar espirra.

3. no entanto, é necessário garantir a execução igual de todas as funções (ou, mais precisamente, referentes aos terminais em um feixe). Às vezes parece que você não entende do que estamos falando. Você tem, você não tem. E sempre com tal reviravolta... Se não há, então há, mas não é isso e não é assim...

4. Você, Vadim, está tão embrulhado que não entende no que está embrulhado, como está embrulhado e por quanto tempo...

Você parece ter dividido os pontos, mas não está respondendo de acordo com o significado. Sim, você também não tem que responder lá. Entendo que para você, a fila e a ordem de execução são a mesma coisa. É por isso que você não sabe do que estou falando.

Se você quiser uma execução uniforme, deve usar um único fio. Você não precisará de sincronização então. Como você pode garantir uma execução uniforme dos fios, cujo tempo de execução e número são desconhecidos?

O meu é simples. Dentro e fora do bloco protegido, como deveria ser pela ciência da programação. Não há necessidade de se preocupar com sua fila especial. Um dia você vai descobrir.

Sim, você também está muito errado sobre o destacado. A sincronização devidamente feita (isto é, sem erros de código ou lógica) executa todos os tópicos. Isto é garantido pelo sistema, em oposição à ordem de execução.

 
Zhunko:

1. Você parece ter quebrado os pontos, mas não está respondendo de uma forma significativa. Sim, você também não tem que responder lá. Entendo que para você, a fila e a ordem da fila são a mesma coisa. É por isso que você não sabe do que estou falando.

2. Se você quiser uma execução uniforme, use um único fio. Você não precisará de sincronização então. Como você pode garantir a execução uniforme dos fios, que tempo e número de execução não são conhecidos?

3. Eu tenho isso simples. Dentro e fora do bloco protegido, como deveria ser pela ciência da programação. Não há necessidade de se preocupar com sua fila especial. Um dia você vai descobrir.

4. Sim, você também está muito errado sobre o destacado. A sincronização devidamente feita (ou seja, sem erros de código ou lógica) executa todos os tópicos. Isto é garantido pelo sistema, ao contrário da ordem de execução.


1. Você deve ter problemas de compreensão. Eu sei do que você está falando.

2. Obrigado, mas eu não estava pedindo conselhos. Especialmente porque estamos discutindo a sincronização de algo que ainda não está em um único fio.

3. A forma como deve ser feito de acordo com a ciência. Que ciência? Sua própria ciência? Algum dia você vai entender, mas não há nada de complicado nisso. As linguagens e algoritmos de programação não foram inventados e criados por tolos. Mas, por alguma razão, eles recebem meios de sincronização e enfileiramento.

4. Muito errado. Se correto....Se houvesse sincronicidade. Mas nesse código que você citou aqui um pouco antes não há sincronicidade, apenas acesso atômico.

 
Zhunko:

A fila está organizada como em qualquer outro idioma. Por si só, através da organização da entrada e saída do bloco a ser protegido.

Este é um roteiro:

Quanto ao downsizing, como a substituição por outras funções, ele não funcionará. É disto que se trata o acesso atômico. Somente uma função pode fazer isso na MQL4.

Parece funcionar bem. Carregados 6 roteiros com pausas de 3000, 2000, 1000, 500, 300, 200. Aqui está uma parte do diário de bordo:

19:58:36 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY Start
19:58:37 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY End
19:58:37 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Start
19:58:39 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD End
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD End
19:58:39 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Start
19:58:43 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Fim
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Início
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Fim
19:19:58:43 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Start
19:58:45 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD End
19:58:45 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Start
19:58:46 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD End
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Start
19:19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: Fim NZDUSD
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: Início USDCAD
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Fim
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Início
19:58:47 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Fim
1919:58:47 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY Start
19:58:48 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY End
19:58:48 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Start
19:58:50 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD End
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD End
19:58:50 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Start
19:58:54 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Fim
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Início
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Fim
19:19:58:54 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Start
19:58:56 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD End
19:58:56 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Início
19:58:57 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Fim
19:58:57 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Início
1919:59:00 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD End
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Start
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Fim
19:59:00 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Início
19:59:01 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Fim


Mais uma vez, só para aqueles que estão em um tanque em um submarino e ainda usando um capacete. Somente o acesso atômico é mostrado aqui. A ordem das funções funcionará conforme o vento soprar. Este código não prevê a execução uniforme de funções. É por isso que não há garantia de que uma função não permaneça na prateleira por muito tempo. Confiar na capacidade de manutenção na programação apenas porque a freqüência do processador é alta é ridículo, mesmo que a freqüência do processador seja muito alta.

Razão: