[en] CONCURRENCY AND COORDINATION MODELS FOR EVENT-DRIVEN IN LUA - BRUNO OLIVEIRA SILVESTRE (2010)
[pt] O uso de multithreading tem se popularizado como forma de separar a execução de tarefas concorrentes e de alcançar maior desempenho aproveitando melhor o tempo das CPUs. No entanto, a programação com threads não é uma tarefa fácil. O uso dos recursos compartilhados deve ser coordenado, pois o acesso concorrente aos mesmos, na maioria dos casos, gera inconsistência na aplicação. O modelo de desenvolvimento orientado a eventos foi apontado por alguns como uma boa alternativa na criação de aplicações. Nesse modelo, a tarefa é realizada por um ou mais eventos, e um loop principal fica responsável por receber e despachar esses eventos. Investigamos, neste trabalho, um modelo em Lua que combina orientação a eventos com preempção sem trazer de volta os problemas de programação concorrente. Investigamos também como características da linguagem podem ser utilizadas para prover mecanismos de coordenação flexíveis. Essas características podem ajudar, por exemplo, a compor novos mecanismos a partir de existentes.