Observe que agora cada thread, produtora ou consumidora, poderá realizar, no máximo, cinco acessos consecutivos antes de ter que esperar pela outra. Além da integridade do buffer que continua sendo preservada como no exemplo do item anterior, agora o acesso ao buffer foi otimizado, melhorando o turnaround da execução do programa.

Um ponto importante a ser observado é que a quantidade de posições que o buffer deve ter é algo de resposta complexa. Para fins didáticos, foi escolhido o número 5 sem qualquer tipo de critério, uma vez que o objetivo foi de apenas demonstrar como funciona um buffer circular. Contudo, em aplicações comerciais e de produção esse valor deve ser configurado adequadamente para cada ambiente diferente onde o software será executado.

Deste modo, para determinar um número ideal de posições do buffer, ou seja, o número necessário, sem faltar e nem sobrar posições, é necessário um estudo à parte das conveniências, ameaças, necessidades e oportunidades de toda a estrutura computacional e organizacional onde o software será executado. Obviamente, isso está além do escopo desta disciplina e por este motivo não será tratado aqui.

Um outro ponto importante a ser lembrado é que a linguagem de programação Java oferece outras formas de se implementar tais exemplos. Além disso, a API da linguagem oferece também um conjunto de classes já prontas com suporte à programação concorrente/paralela. Para os exemplos deste módulo, o uso da classe ArrayBlockingQueue também simplificaria os exemplos demonstrados.

Portanto, caso não se sinta confortável em utilizar os recursos da forma como foram apresentados, opte pelo uso das estruturas já presentes na linguagem e tenha em mente que, se está simples de usar, é porque alguém tornou isso simples e esse alguém está fazendo o trabalho por você.

A partir dos módulos seguintes, o framework Android será apresentado. Um detalhe importante que deve ser considerado é que apesar da linguagem Java poder ser utilizada para a programação de aplicativos Android, a API de desenvolvimento do Android é uma API própria, que possui muitas semelhanças com a API do Java. Deste modo, o Java utilizado pelo Android não necessita da Java Standard Edition (JSE) muito utilizado por diversos aplicativos “comuns” escritos em Java.

Copyright © 2016 AIEC.