État du temps

Parfois il est utile d’avoir de l’information qui est partagée à travers plusieurs fils d’exécution ou boucle en direct. Par exemple, vous pouvez vouloir partager la notion de la clé courante, BPM ou encore des concepts plus abstraits comme la complexité courante ( laquelle vous interpréteriez potentiellement de manière différente à travers les divers fils). De plus, nous ne voulons pas perdre nos garanties de déterminisme existantes en faisant cela. En d’autres mots, nous aimerions être toujours capable de partager du code avec les autres et savoir exactement ce qu’ils vont entendre en l’exécutant. À la fin de la Section 5.6 de ce tutoriel, nous avons discuté brièvement de pourquoi nous ne devrions pas utiliser des variables pour partager l’information à travers les fils d’exécution causant une perte de déterminisme (ce qui est dû à la concurrence).

La solution de Sonic Pi au problème de travailler facilement avec les variables globales d’une manière déterministe est un système novateur appelé l’État du Temps. Cela peut sembler complexe et difficile (en fait, au Royaume-Uni, la programmation avec plusieurs fils d’exécution et de la mémoire partagée est habituellement un sujet de niveau universitaire). Toutefois, comme vous allez le voir, tout comme jouer votre première note, Sonic Pi fait du partage d’état parmi des fils d’exécution une chose incroyablement facile tout en conservant vos programmes avec des fils d’exécution sûrs et déterministes..

Rencontrez get et set