需求:一个或多个文件夹下面有上万个file,需要高速读取,并存入数据库。
小弟打算利用1.5的号称高性能锁:基本做法:多线程(5个)从work目录读取文件时,将该文件锁定,insert入数据库后,将该文件move去backup文件夹但是问题是,当move文件时,需要解开锁,而这时如果其他线程冲进来读该文件并加锁,岂不是会造成死锁..?
针对这种loader的做法,大家有什么比较好的建议么,小弟先谢谢了

解决方案 »

  1.   

    PS:基本做法:多线程(5个)从work目录读取文件时,将该文件锁定,insert入数据库后,将该文件move去backup文件夹
    对处理对象加锁吗?这符合生产者与消费者模式。看看玩线程的大师axman怎么说的吧,他的博客在网络评价很高http://blog.csdn.net/axman/archive/2005/07/22/431801.aspx
      

  2.   

    需求实现分2个功能
    1. list 出所有的文件,存放到一个集合中.一个线程足够
    2. 从保存文件名的集合中取一个出来,插入数据库,然后删除,可以开N个线程仅仅存放文件名的集合需要同步
      

  3.   

    和 ReentrantReadWriteLock 扯不上关系
      

  4.   

    不好意思,仔细看了一下,是和ReentrantReadWriteLock扯不上关系
    我想达到的是对文件加锁。。