Quando gli autori implementano la parte mutex dei serializzatori, usano un elenco chiamato cell
. Ma la lista contiene solo un elemento, quindi perché non usare solo una variabile?L'attrezzo del mutex in SICP Sezione 3.4
5
A
risposta
10
Poiché una variabile non è un valore di prima classe che è possibile passare a un'altra funzione. In 3.4, gli autori implementano una funzione make-mutex
che utilizza clear!
come funzione di supporto, che accetta una cella. Se la cella fosse rappresentata da una variabile mutabile, sarebbe necessario definire clear!
all'interno di make-mutex!
per chiudere quella variabile. Lo stesso vale per la funzione helper test-and-set!
.
Avrebbero anche potuto usare, ad esempio, una casella invece di una cella di controllo.
5
Se al posto di un elenco viene utilizzata una variabile, le procedure clear!
e test-and-set!
non funzioneranno poiché Schema è un valore pass-by-value.
Problemi correlati
- 1. semafori, sezione critica, esempi mutex in MFC e C#
- 2. SICP sqrt NullPointerException
- 3. Qual è la differenza tra mutex e sezione critica?
- 4. SICP 2.16 intervallo aritmetico (schema)
- 5. è ancora consigliato SICP?
- 6. Come comprendere a fondo il diagramma del flusso del segnale descritto in SICP?
- 7. SICP Video Lecture 2
- 8. SICP Infinite Stream (capitolo 3.5.2)
- 9. Per mutex o non per mutex?
- 10. Boost, concetto mutex
- 11. `async for` in Python 3.4
- 12. boost :: mutex :: ~ mutex(): Asserzione `! Pthread_mutex_destroy (& m) 'fallita
- 13. Blocco mutex: cosa significa "blocco"?
- 14. Python 3.4 decodifica byte
- 15. C'è differenza tra il mutex scope di Boost e la sezione critica di WinAPi?
- 16. Python 3.4+: Estensione pathlib.Path
- 17. Come installare in Python 3.4 - .whl files
- 18. Monitor vs Mutex in C#
- 19. Blocchi mutex gerarchici in Java
- 20. clang 3.4 Supporto C++ 14
- 21. boost :: mutex/Come verificare se un mutex è bloccato
- 22. Qual è la spiegazione dell'esercizio 1.6 in SICP?
- 23. Incorporare Python 3.4 in un'applicazione Qt C++?
- 24. variabili di stampa in pitone 3.4
- 25. Come installare xmlrpclib in python 3.4?
- 26. Ricarica un modulo in Python 3.4
- 27. Abbandonato mutex eccezione
- 28. Aggiunta del supporto attributo personalizzato (HTML5) a Primefaces (3.4)
- 29. esclusione reciproca PHP (mutex)
- 30. Come "ingrandire" una sezione del set Mandelbrot?