O que são Threads no Protheus?

O que são threads? Onde vivem? O que comem? Hoje no Globo Repor… quer dizer, no Terminal de Informação.

Thread é uma tarefa executada por algum sistema. No caso do Protheus, ele trabalha com apenas 1 thread por conexão ou com múltiplas threads.

Então por exemplo, se você abrir o SIGAADV, ele irá abrir uma Thread no Monitor e no DbMonitor, e você não conseguirá abrir outras abas, apenas 1 por vez.

Já, se você abrir o SIGAMDI, o sistema irá abrir uma Thread específica para o MDI, e esperar que o usuário abra outras threads. Então se o usuário abrir o cadastro de Clientes, o de Produtos e o Pedidos de Venda, você terá nesse momento 4 threads abertas, uma de MDI, e 3 das rotinas (Clientes, Produtos e Pedidos).

No caso, via AdvPL, nós podemos ainda, enquanto estamos com uma thread ativa, chamar outras threads para “ajudar” no processamento final, que chamamos de programação multi-thread. Para fazermos isso, basta chamarmos a função StartJob (https://tdn.totvs.com/display/tec/StartJob), que ela irá iniciar uma nova thread secundária.

Esse recurso é interessante para processamentos pesados, como por exemplo, um recálculo do custo médio.

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

Deixe uma resposta