2009/10/20 P. <pedro....@member.fsf.org>:
>
>
> Infelizmente para mim, a API básica para se percorrer as linhas de uma
> consulta na sqlite3 -- sqlite3_exec -- não usa todos os processadores
> do sistema onde o programa vai rodar. Eu gostaria de ocupar todos os
> processadores nesse sistema ao máximo que for possível, porque os
> cálculos realmente demoram muito tempo.
>
Você pode fazer um fork() e então abrir o banco de dados
(sqlite3_open) a partir dos vários processos, isso não irá corromper o
arquivo do banco de dados.
--
-alex
http://www.ventonegro.org/
Pedro
Isso que você esta tentando fazer depende muito da sequencia em que você precisa que seus dados sejam processados.
Nos sistemas em que trabalho, tenho um thread pool para executar as requisições que manipulam o banco de dados, mas elas
podem ocorrer assincronamente (algumas não, e essas são serializadas para a mesma thread).
Eu não faço ideia do tipo de dado que você está manipulando e quais tipos de cálculos você esteja fazendo, se der alguma
noção do que seja (exemplos, etc), acho que da para te ajudar.
Eu ja fiz algumas coisas do tipo: 1 resultset que gera uma matriz que depois era reprocessada e gerava outra. Nesse caso, pode
ser uma 1 thread que vai gerando a primeira matriz e outra thread que va calculando a segunda matriz a partir da primeira.
Mas como cada caso é um caso, se puder dar mais informações acho que podemos te orientar com isso.