Exemplo pra "enxergar" multithread

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Exemplo pra "enxergar" multithread

Mensagem por JoséQuintas »

Agora que me dei conta.
Tem muito exemplo de multithread, mas nenhum com visão disso.

Código: Selecionar todos

PROCEDURE Main()

   SetMode( 25, 80 )
   CLS
   Altd()
   hb_ThreadStart( { || Otro() } )
   hb_ThreadStart( { || Otro() } )
   hb_ThreadStart( { || Otro() } )
   Inkey(0)

   RETURN

FUNCTION Otro()

   LOCAL nCont

   hb_gtReload( "WVG" )
   SetMode( 25, 80 )
   CLS
   Altd()
   FOR nCont = 1 TO 100
      ? nCont
      Inkey(1)
   NEXT

   RETURN Nil
https://www.youtube.com/watch?v=KwK2DrLjc8A



Como dá pra ver, é como ter vários EXEs, cada um roda à vontade.
O vídeo deixa isso nítido, porque dá até pra fazer debug em uma thread enquanto a outra está rodando.
E se fechar a thread principal, fecha tudo, porque não coloquei nada pra impedir isso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Exemplo pra "enxergar" multithread

Mensagem por JoséQuintas »

Multithread é o mesmo que ter várias dialogs ?

Talvez sim, talvez não.

Que tal este motivo:
Processador Intel Core I9-14900, 3.6Ghz (5.8Ghz Turbo), Cache 36MB, Intel LGA 1700, 24-core 32-threads

Um computador com 32 threads, como se fossem 32 motores.
Vai ficar usando tudo no motor 1, e deixar 31 motores sem fazer nada ?
Se estão inventando computadores com cada vez mais threads, é porque existe uso e vantagem nisso.
Sempre tem alguma situação onde se possa tirar vantagem disso.

ADO faz uso de multithread...
Talvez por isso seja rápido, sei lá....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Exemplo pra "enxergar" multithread

Mensagem por JoséQuintas »

Então...

Quando comecei com GTWVG, e testei o menu windows, as coisas entraram como multithread.
Foi só por isso que comecei com multithread.

Gostei do comportamento com DBFs, é ótimo.

Código: Selecionar todos

USE CLIENTES SHARED
SET INDEX TO CLIENTES
SET ORDER TO 2
@ 0, 0 GET nCodigo VALID OkCliente( nCodigo )
...
CLOSE DATABASES
Isso acima, pode ser usado tranquilamente em multithread, abrir quantas dialogs quiser com isso.
Nada de ficar inventando ALIAS pra trabalhar com janelas diferentes, controlar DBFs abertos, índices em uso, etc.
Rotina de validação sempre igual, afinal, mesmo alias e mesmos índices.

E por fim, pra misturar LIBs, cada LIB em uma thread diferente.

No final, uso multithread não para o que ela foi inventada, acabei encontrando situações aonde foi vantagem fazer uso de multithread.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
developer
Usuário Nível 3
Usuário Nível 3
Mensagens: 149
Registrado em: 09 Nov 2024 23:45
Localização: Londrina/PR

Exemplo pra "enxergar" multithread

Mensagem por developer »

No final, uso multithread não para o que ela foi inventada
Mas então para que multithread foi inventada?
Responder