Hoje me lembrei de algo que me ocorreu quando estava na faculdade. Nosso professor entrou em nossa sala, e nos pediu um trabalho sobre Threads. Ele queria um sistema capaz de realizar várias contas ao mesmo tempo utilizando processos paralelos.
Nos rostos dos alunos havia apenas uma dúvida. Não era sobre o que era Threads e para que serviam, mas sim, como programa-las, como fazer um sistema que fizesse várias coisas ao mesmo tempo. Me lembro que cheguei a falar para uma amiga: "Você tem que parar de pensar uma coisa linear e pensar em coisas paralelas". Talvez não tenha usado boas palavras, mas era o que ela precisava fazer.
Partindo do conceito inicial, Thread é um processo que compartilha o mesmo núcleo que o seu sistema. Ou seja, seu sistema em si já é uma Thread para o sistema operacional, pois é um processo rodando paralelamente junto ao sistema operacional.
Como eu amo analogias, vou fazer mais uma para explicar melhor. Pegue sua cidade, ela tem várias ruas, certo? E em cada rua está acontecendo coisas distintas, sem que a sua cidade precise se preocupar, né? E sua cidade está em um estado e o seu estado não precisa se preocupar com que esta acontecendo na cidade, não é? Então em nossa analogia, estado é nosso sistema operacional, pois no estado pode ter várias cidades, cidades é o nosso sistema, e as ruas são nossas threads.
Então quando você for programar um sistema usando as Threads, pense no seguinte: Seu sistema não precisa se preocupar com a Thread, pois ela tem que tomar conta de si sozinha, ou seja, você deve imaginar na Thread um novo sistema, com novos tratamentos de erro, novas estruturas, novos dados, e assim vai.
Mas tome cuidado com números excessivos de Threads, pois como dito, uma Thread compartilha o mesmo núcleo o seu sistema, então quanto mais Threads rodando em seu sistema, mas ele ficará pesado para o sistema operacional lidar.
É isso ai, threads são uma benção mas também uma praga, pois se não bem desenvolvidas pode prejudicar todo seu sistema.
Um abraço e até o próximo post!
Nenhum comentário:
Postar um comentário