Frequentemente é útil ter informação partilhada entre varias threads ou live loops. Por exemplo, podes querer partilhar a noção da tecla actual, BPM ou até conceitos abstractos como a ‘complexidade’ actual ( que pode ser interpretada de forma diferente em threads diferentes). Também não queremos a garantia de determinismo existente ao fazermos isto. Ou seja, queremos partilhar código com outros e saber exatamente o que eles vão ouvir ao executa-lo. No final da secção 5.6 deste tutorial nós discutimos brevemente porque é que não devemos utilizar variáveis para partilhar informação entre threads devido à possível perca de determinismo (por sua vez devido à condição de corrida).
A solução do Sonic Pi ao problema de lidar com variáveis globais de forma determinística é através de um sistema novo chamado de Time State. Isto pode parecer complexo e difícil (de facto, no Reino Unido, programar com várias threads e memoria partilhada é normalmente um assunto abordado na universidade) No entanto, como poderás ver, tal como tocar a primeira nota, o Sonic Pi torna incrivelmente fácil a partilha de estado entre múltiplas threads enquanto mantém os teus programas thread safe e deterministicos.
Conhece o get
e o set
…