Visando aumentar ainda mais o desempenho na hora de gerar o código fonte dos projetos no Scriptcase, foi implementado a possibilidade de usar mais de um núcleo (mais de uma thread) simultaneamente, ou seja, ao invés de gerar apenas uma aplicação por vez poderemos definir quantas aplicações serão geradas ao mesmo tempo.
O multithreading é um modelo de programação bastante popular que permite a execução de múltiplas linha de execução dentro de um contexto simples, que sejam realizadas ações múltiplas, compartilhando recursos do processo, e capazes de executar de forma independente. O modelo de programação em linha de execução fornece ao desenvolvedor uma execução simultânea. Entretanto, a aplicação mais interessante da tecnologia ocorre quando ela é utilizada em um processo simples permitindo uma execução paralela em sistemas multi-processados.
Modelo Muitos-Para-Um
O modelo muitos-para-um mapeia muitos threads de nível de usuário para núcleos do processador. O gerenciamento das threads é realizado no espaço do usuário e assim é eficiente, mas o processo inteiro ficará bloqueado. Além disso, como somente uma thread pode acessar o processador de cada vez, múltiplos threads são incapazes de executar em paralelo em multiprocessadores.
Modelo Um-Para-Um
O modelo um-para-um mapeia cada thread de usuário para um único nucleo do processador, gera mais concorrência do que o modelo muitos-para-um. Permite a uma outra thread ser executada enquanto uma thread realiza uma chamada de sistema de bloqueio. Ele também permite que múltiplos threads executem em paralelo em multiprocessadores. A única desvantagem deste modelo é que a criação de uma thread de usuário requer a criação do correspondente thread de processamento do processador.
Modelo Muitos-Para-Muitos
O modelo muitos-para-muitos multiplexa muitos threads de nível de usuário para um número menor ou igual de nucleos do processador. O número de threads do processador pode ser específico tanto para uma aplicação em particular quanto para uma máquina em particular. Os desenvolvedores podem criar tantos threads de usuário quantos forem necessários, e os correspondentes threads do processador podem executar em paralelo em um multiprocessador. Além disso, quando uma thread realiza uma chamada de sistema de bloqueio, o processador pode agendar uma outra thread para execução.
As configurações dos threads do Scriptcase podem ser encontradas em configuração > administração. A opção “quantidade de compilações em paralelos” por padrão vem configurado para 5 e pode variar de 1 a 100. A outra opção que existe é se vamos “exibir o tempo de compilação individualmente” ou coletivamente para todas as aplicações.
Segue uma screenshot da nova funcionalidade em funcionamento.