[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 380

 
Zhunko:
Come organizzare la coda in un linguaggio di programmazione dipende dal programmatore. L'accodamento a livello di kernel è eseguito dal sistema e non è garantito.


Quindi eccoci qui. Nel tuo codice mostrato un po' prima, la coda non è organizzata. E quello che il sistema non garantisce è quello di cui stai parlando e quello che dovresti fare tu stesso. Ma in alcuni casi è facile e semplice da fare, e in altri casi dovrete pensare e codificare molto, perché non ci sono strumenti speciali per questo.

Vadim, hai un modo interessante di parlare, è come se ti dimenticassi di cosa stava parlando o hai una saggezza speciale. Prima hai mostrato il codice e hai sostenuto che l'ordine è rispettato, e ora proponi la tesi-postulato che non è garantito... A volte ti contraddici, ma questa non è flessibilità mentale.

 
Integer:


Ed eccoci qui. Nel tuo codice mostrato un po' prima, l'accodamento non è organizzato. E il fatto che non sia raccolto dal sistema è quello di cui stiamo parlando, e cosa fare per conto proprio. Ma in alcuni casi è facile e semplice da fare, e in altri casi avrete molto codice e pensiero, perché non ci sono strumenti speciali per questo.

Vadim, hai un modo interessante di parlare, è come se ti dimenticassi di cosa stava parlando o hai una saggezza speciale. Prima hai mostrato il codice e hai sostenuto che l'ordine è rispettato, e ora proponi la tesi-postulato che non è garantito... A volte ci si può contraddire, ma questa non è flessibilità mentale.

Dim, un'altra denuncia? La coda è rispettata secondo le capacità del sistema. Cos'altro si può pretendere dal sistema?

Non ho mai dovuto organizzare altre code. Il sistema ha abbastanza capacità. Per qualche ragione, non garantiscono l'accodamento a livello di kernel. Ma l'esecuzione atomica è garantita.

 
Zhunko:

Dim, un'altra denuncia? La coda viene mantenuta secondo la capacità del sistema. Cos'altro si può pretendere dal sistema?

Non ho mai avuto bisogno di organizzare altre code. Il sistema ha abbastanza possibilità. Per qualche ragione, non garantiscono l'accodamento a livello di kernel. Ma l'esecuzione atomica è garantita.

Se secondo le capacità del sistema, l'accodamento non è assicurato. Ma tu hai iniziato a sostenere che è fornito. Poi avete cominciato a dimostrare che non è assicurato. Ora abbiamo l'indulgenza - che secondo le possibilità del sistema:). Il fatto che tu non abbia mai avuto bisogno di fornire una sequenza dipende dal tuo approccio di principio alla programmazione. Alcune delle funzioni della vostra nota libreria richiedono l'accodamento. Dato che non fornite una coda garantita, congratulazioni! Non ho nessuna lamentela, solo non farne un dramma e coprire tutto con qualche mito di mistero, segretezza e qualcos'altro oltre a tutto il resto.

 
Grazie!!!
 
Integer:

Se secondo le capacità del sistema, significa che l'ordine non è assicurato. Ma lei ha cominciato a sostenere che è assicurato. Poi avete cominciato a dimostrare che non è assicurato. Ora è indulgenza - che secondo le possibilità del sistema:) Il fatto che tu non abbia mai avuto bisogno di fornire una sequenza dipende dal tuo approccio di principio alla programmazione. Alcune delle funzioni della vostra nota libreria richiedono l'accodamento. Dato che non fornite una coda garantita, congratulazioni! Non ho nessuna lamentela, solo non farne un dramma e coprire tutto con qualche mito di mistero, segretezza e qualcos'altro oltre a tutto il resto.

Il sistema impone una coda in un ordine che non vi piace, e che non corrisponde all'ordine della coda dei moduli che sono in attesa di essere eseguiti. È questa quella che chiamate un'assenza di coda?

Per me, ogni coda è una coda. Compresa la coda di esecuzione a livello di kernel. È una scatola nera. Prendilo per quello che è. Avete bisogno di una vostra coda con un proprio ordine - organizzatela voi stessi.

Non c'è bisogno di un ordine speciale in quella biblioteca. Uso diversi oggetti di sincronizzazione. Non importa in quale ordine viene eseguito. Non c'è bisogno di pensarci. Il sistema farà tutto da solo.

Non capisco cosa voglia dire essere misteriosi. Ancora con la fantasia? :-))

 
Zhunko:

1. Il sistema impone una coda in un ordine che non vi piace, e che non corrisponde all'ordine della coda dei moduli che sono in attesa di essere eseguiti. È questa quella che chiamate un'assenza di coda?

2. Per me, ogni coda è una coda. Compresa la coda di esecuzione a livello di kernel. È una scatola nera. Prendilo così com'è. Avete bisogno di una vostra coda con un proprio ordine - organizzatela voi stessi.

3. In quella biblioteca non c'è bisogno di un ordine speciale di esecuzione. Uso diversi oggetti di sincronizzazione. Non importa in quale ordine viene eseguito. Non dovete pensarci. Il sistema farà tutto da solo.

4. Non capisco cosa voglia dire essere misteriosi. Ancora con le fantasie? :-))


1. Fornire un accesso atomico non implica fornire un ordine uniforme di accesso. L'ordine di accesso alle funzioni sarà praticamente casuale, il che non esclude che qualche funzione non venga tralasciata in qualche momento.

2. Non una scatola nera, ma completamente assente. L'ordine di esecuzione è come la nonna del settimo piano starnutisce.

3. Tuttavia, c'è la necessità di assicurare l'esecuzione uguale di tutte le funzioni (o più precisamente, di indirizzare i terminali in un fascio). A volte sembra che tu non capisca di cosa stiamo parlando. Tu l'hai fatto, tu no. E sempre con un tale colpo di scena... Se non c'è, allora c'è, ma non è questo e non è così...

4. Tu, Vadim, sei così avvolto da non capire in cosa sei avvolto, come sei avvolto e per quanto tempo...

 
Ha comprato un sacco di core di processore. E ora quale fare la fila per)))))))))
 
Integer:


1. Fornire un accesso atomico non implica affatto fornire un ordine uniforme di accesso. L'ordine di accesso alle funzioni sarà quasi casuale, il che non esclude la possibilità che qualche funzione non venga tralasciata in un certo periodo di tempo.

2. Non una scatola nera, ma completamente assente. L'ordine di esecuzione è come la nonna del settimo piano starnutisce.

3. Tuttavia, c'è la necessità di assicurare l'esecuzione uguale di tutte le funzioni (o più precisamente, di indirizzare i terminali in un fascio). A volte sembra che tu non capisca di cosa stiamo parlando. Tu l'hai fatto, tu no. E sempre con un tale colpo di scena... Se non c'è, allora c'è, ma non è questo e non è così...

4. Tu, Vadim, sei così avvolto da non capire in cosa sei avvolto, come sei avvolto e per quanto tempo...

Sembra che lei abbia diviso i punti, ma non sta rispondendo secondo il significato. Sì, non devi rispondere nemmeno lì. Ho capito che per voi la coda e l'ordine di esecuzione sono la stessa cosa. Ecco perché non sai di cosa sto parlando.

Se volete un'esecuzione uniforme, dovreste usare un singolo thread. Allora non avrete bisogno della sincronizzazione. Come si può assicurare l'esecuzione uniforme dei thread, il cui tempo di esecuzione e numero sono sconosciuti?

Il mio è semplice. Dentro e fuori il blocco protetto, come dovrebbe essere secondo la scienza della programmazione. Non c'è bisogno di preoccuparsi della vostra coda speciale. Un giorno lo capirai.

Sì, ti sbagli di grosso anche su quello evidenziato. Una sincronizzazione fatta correttamente (cioè senza errori nel codice o nella logica) esegue tutti i thread. Questo è garantito dal sistema rispetto all'ordine di esecuzione.

 
Zhunko:

1. Sembra che tu abbia scomposto i punti, ma non stai rispondendo in modo significativo. Sì, non devi rispondere nemmeno lì. Capisco che per voi la coda e l'ordine della coda sono la stessa cosa. Ecco perché non sai di cosa sto parlando.

2. Se volete un'esecuzione uniforme, usate un singolo thread. Allora non avrete bisogno della sincronizzazione. Come si può assicurare l'esecuzione uniforme di thread di cui non si conosce il tempo di esecuzione e il numero?

3. Per me è semplice. Dentro e fuori dal blocco protetto, come dovrebbe essere secondo la scienza della programmazione. Non c'è bisogno di preoccuparsi della vostra coda speciale. Un giorno lo capirai.

4. Sì, ti sbagli di grosso anche su quello evidenziato. Una sincronizzazione fatta correttamente (cioè senza errori nel codice o nella logica) esegue tutti i thread. Questo è garantito dal sistema rispetto all'ordine di esecuzione.


1. Devi avere problemi di comprensione. So di cosa stai parlando.

2. Grazie, ma non stavo chiedendo consigli. Soprattutto perché stiamo discutendo la sincronizzazione di qualcosa che non è già in un singolo thread.

3. il modo in cui dovrebbe essere fatto secondo la scienza. Quale scienza? La tua stessa scienza? Un giorno lo capirete, ma non c'è niente di complicato. I linguaggi di programmazione e gli algoritmi non sono stati inventati e creati dagli sciocchi. Ma per qualche motivo sono dotati di mezzi di sincronizzazione e di accodamento.

4. molto sbagliato. Se corretto....Se ci fosse sincronicità. Ma in quel codice che hai citato qui un po' prima non c'è sincronicità, solo accesso atomico.

 
Zhunko:

La coda è organizzata come in qualsiasi altra lingua. Da solo attraverso l'organizzazione dell'ingresso e dell'uscita del blocco da proteggere.

Questo è uno script:

Per quanto riguarda il ridimensionamento, come la sostituzione con altre funzioni, non funzionerà. Questo è il senso dell'accesso atomico. Solo una funzione può fare questo in MQL4.

Sembra funzionare bene. Caricato 6 script con pause di 3000, 2000, 1000, 500, 300, 200. Ecco una parte del registro:

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 End
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Start
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD End
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: NZDUSD End
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD End
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Start
19:58:47 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD End
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 End
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Start
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD End
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 Start
19:58:57 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD End
19:58:57 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Start
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 End
19:59:00 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:59:01 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD End


Ancora una volta, solo nel caso in cui chi è in un carro armato in un sottomarino e indossa ancora un casco. Qui viene mostrato solo l'accesso atomico. L'ordine di lavoro delle funzioni sarà come il vento soffia. Questo codice non prevede l'esecuzione uniforme delle funzioni. Ecco perché non c'è garanzia che una funzione non rimanga sullo scaffale per molto tempo. Affidarsi all'assistenza nella programmazione solo perché la frequenza del processore è alta è ridicolo, anche se la frequenza del processore è molto alta.