[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 382

 
Integer:

Uma grande salva de palmas! Sobre o código da página 378. Mesmo que o terminal registre a ordem da fila, ele não pode saber em que caso a função foi executada e em que caso ela foi rejeitada.
Então, o que é isso? Então por que ele precisa saber? O acesso atômico é fornecido. É tudo o que ele precisa. Manuseie o resto você mesmo. De que tarefa você está falando? Tudo isso é abstrato.
 
Zhunko:
E daí? Por que ele precisaria saber disso? O acesso atômico está assegurado. Isso é suficiente. Manuseie o resto você mesmo. De que tarefa você está falando? Tudo isso é abstrato.


O acesso atômico não é suficiente. Não há garantia de execução consistente das tarefas, algumas tarefas podem ser deixadas para trás. Seu código e seus registros mostram que as tarefas são realizadas de forma aleatória, não sequencial.
 
Zhunko:
...Trata tu do resto...

É isso que estou dizendo, você tem que fazer você mesmo, apenas fornecer acesso atômico não é suficiente.
 
Zhunko:
...Isso é suficiente. Trata do resto tu mesmo....

Vadim, você está se contradizendo de forma surpreendente. Primeiro você escreve que já é suficiente. Então você percebe (ou adivinha) que algo mais precisa ser feito.
 
Bom dia! Favor escrever, depois de GlobalVariableSet ("Profit_pomnim", Itogo_Profit);
foi criado, pode ser mais utilizado de forma tradicional -

Profit_pomnim=365; Bumbara=Profit_pomnim; ou deve ser chamado apenas através de funções especiais? GlobalVariableSet("Profit_pomnim", 365);
 
Dimka-novitsek:
Bom dia! Favor escrever, após a criação de uma variável global GlobalVariableSet("Profit_pomnim", Itogo_Profit);
ela pode ser mais utilizada de forma tradicional -

Profit_pomnim=365; Bumbara=Profit_pomnim; ou ela deve ser abordada apenas através de funções especiais?


Bumbara=Profit_pomnim - você não pode fazer isso, não há variável Profit_pomnim. Mas existe uma variável global Profit_pomnim.

Assim deve ser: Bumbara=GlobalVariableGet("Profit_pomnim");

 
Integer:

O acesso atômico não é suficiente. Não há garantia de execução consistente das tarefas, algumas tarefas podem ser deixadas para trás. Seu código e seus registros mostram que as tarefas são executadas de forma aleatória, não sequencial.
Eu não entendo... O que você quer dizer...? Que garantia? Você se diz um programador. Escreva de uma forma que seja garantida. Como uma tarefa pode estar "atrás do bot"? O que você escreveu lá dentro que não vai funcionar?
Suspeito que você esteja fixado em uma ordem especial de endereçamento de um recurso. Esta é a abordagem errada para organizar o algoritmo. Escreva-o de forma que não tenha importância.
Inteiro:

É isso que estou dizendo, você mesmo tem que tomar medidas, mas fornecer acesso atômico não é suficiente.
Em minha prática isto nunca foi exigido. Você pode sempre evitar esta abordagem. Mantenha-o simples. Ele funcionará de forma mais confiável.
Inteiro:

Vadim, você está se contradizendo de forma surpreendente. No início você escreve que é o suficiente. Acontece então que você entende (ou adivinha) que algo mais precisa ser feito.

Não há contradição. Acima respondeu.

====================

Quanto a ser complicado, lembro como você escreveu uma função com um algoritmo complexo para calcular o número de dias em um mês. Eu ainda sorrio quando me lembro disso.

Dmitry, não há necessidade de complicar em demasia. Se você tem constantes, você não precisa calculá-las. Basta declará-los.

O mesmo se refere à multi-tarefa. Se você não precisa dele, não deve usá-lo. A ordem especial de abordar um recurso implica uma execução com uma única rosca.

Inteiro:
Mais uma coisa sobre a regulamentação do sistema. Se vários fios forem criados - sim, o sistema irá regular. Mas se alguém do lado entrou nestes fios, então você mesmo tem que pensar em tudo, não haverá milagre do sistema.
Quem é esse alguém? Ninguém mais está entrando nos meus fios. É preciso escrever de tal forma que estejam protegidos.

 

Zhunko:

1. Eu não entendo... O que você quer dizer...? Que garantia?

2. você se diz um programador.

3. Escreva de modo que seja garantido.

4. Como uma tarefa pode "ficar atrás do bot"? O que você escreveu lá dentro que não está sendo executado?

5. Suspeito que você esteja fixado na ordem especial em que o recurso é acessado. Esta é a abordagem errada para organizar o algoritmo. Escreva-o de uma maneira que não importa.

6. Em minha prática isto nunca foi exigido. Você pode sempre evitar esta abordagem. Mantenha-o simples. Ele funcionará de forma mais confiável.

Não há contradição. Eu respondi acima.

====================

7. Quanto a ser complicado, lembro como você escreveu uma função com um algoritmo complexo para calcular o número de dias em um mês. Eu ainda sorrio quando me lembro disso.

8. Dmitry, não há necessidade de complicar as coisas. Se você tem constantes, você não precisa calculá-las. É suficiente declará-los.

9. O mesmo se refere à multi-tarefa. Se você não precisa, não o use.

1. Desculpe!

2. Onde, quando, onde? O que isso tem a ver com isso agora?

3. eu escrevo de uma forma que é garantida.

4. Qualquer uma das que são atomicamente acessíveis.

5. E não em loop, mas tomando medidas para garantir que todas as tarefas sejam realizadas em ordem.

6. Não tagarelar. A função de troca de dados entre terminais de sua biblioteca requer isto, e não apenas acesso atômico.

7. Que função é essa? Conte-me mais. Este aqui? O que é tão engraçado? Talvez você simplesmente não tenha entendido alguma coisa. Se essa função, era um interesse esportivo e nada mais. A propósito, trata-se de uma tarefa muito complexa e o algoritmo mais otimizado para esta tarefa (entre os conhecidos) também é bastante complicado. Portanto, seu sarcasmo é lamentável.

8. Ou talvez você devesse conseguir um emprego em um jardim de infância como enfermeira? O nível de pregação é o mesmo, adequado. Talvez no parágrafo anterior eu não saiba como traduzir o tempo em segundos para horas minutos, etc. por funções emkulya?

9. Problemas de memória, ou de consciência da realidade? Lembre-se do que se trata a discussão - como transformar uma execução paralela de tarefas em uma execução seqüencial.

 
Integer:

9. Problemas com a memória ou com a consciência da realidade? Lembre-se do que se trata a conversa - como transformar a execução paralela de tarefas em execução seqüencial.

Sua suposição de que a sincronização está fora de sincronia é onde ela começou:

Inteiro:

Vadim, você já tentou aplicá-lo? Ele não sincroniza nada. Tenho brincado com isso recentemente. Você mesmo tem que construir a fila. Infelizmente, ele só reduz o código em três linhas. Ou talvez eu não o entenda.

Aqui está o código onde a sincronização funciona. O acesso atômico ao recurso é fornecido. O resto é o seu mexer em trazer os fios em uma única linha. Eu sugeri que você revisasse o algoritmo errado. Existe apenas uma solução correta para tal tarefa - combinar todo o código em um único fio. Então, o recurso será chamado em ordem sem sincronização. O tempo de execução do código será o mesmo que na execução de múltiplas linhas. Mantenha-o simples.

 
Zhunko:

1. Sua suposição de que a sincronização não está funcionando com você começou:

Aqui está algum código onde a sincronização funciona. O acesso atômico ao recurso é fornecido. O resto é a convergência de fios. Sugeriu que você revisasse o algoritmo errado. A única solução correta para tal tarefa é fundir tudo em um único fio. Então, o recurso será chamado em ordem sem sincronização. O tempo de execução do código será o mesmo que na execução multi-tarefa. Simplifique-o.


1. Não de uma suposição, mas dos resultados de um experimento, que, a propósito, também são confirmados por seu experimento na p. 378. 378.

2. O código na página 378 fornece apenas acesso atômico. Não há fila para a execução de tarefas. Pode acontecer que uma das tarefas demore muito tempo para ser executada.