怎么样操作比较快?我打开一个网页,获取网页上我需要的内容,然后把获取的内容存入数据库。由于页面比较多,我怎么样操作比较快:
1.每次打开一个页面,获取内容后,将数据存入内存,等获取所有页面的内容以后,再将内存中的数据存入数据库。
2.每次打开一个页面,获取内容后,立刻存入数据库。
3.两个线程:一个线程打开页面获取内容,并将获取的内容存入内存;另一个线程将内存中的数据存入数据库。
ps:我将数据存入内存的时候用数据结构list<>,页面很多,肯定10万以上。
如果第三种方法的话,就是一个线程将页面上获取的内容存入list<>,另一个线程将list<>中的数据存入数据库。
我对线程不太了解,只是听别人说起这个方法,还请大家多多指教!
大家还有别的更快的方法的话,欢迎拍砖!
谢谢!

解决方案 »

  1.   

    一般情况下用2是最安全的。如果要用3也可以,但不是list是Queue<>,在Dequeue和Enqueue的时候lock一下就可以了。
      

  2.   

    以前做过类似的功能,是一个多线程的window服务, 其中有一组线程专门获取资源,并把获取的资料编写成SQL以文本文件存到硬盘上,另一组线程专门读取文本文件并执行到SQL数据库中.放在文本中主要是由于资源多占内存大
      

  3.   

    第三种最快,你可以开多个线程来做,用队列,但不能直接用,你要封装的,本人正好最近在研究多线程下的性能问题,关于队列这块,自己写了一个线程安全的队列,能做到enqueue和dequeue的锁互不冲突,也支持一次enqueue和dequeue多个item,如果你感兴趣,我可以发给你。