我有一个list<string>变量 ,其中保存了10万条数据,我现在想开10条线程读里面的数据,其中线程1读1,11,21这样数据,线程2读2,12,22这样的数据  因此类推。 希望这些线程能同时读取而不用锁住,不知道可以实现吧  如果能实现,望高手指点!
如果不能实现 ,也望高手给出一个好的解决方案  谢谢!

解决方案 »

  1.   

    从你的问题出发,我建议用 string[]
    因为动态集合list的目的就是可以动态扩建 length
    但是如果你本身只是一个 容量 可控制死的 集合,比如 你就10万条数据  那么用数组更好.
    用索引来控制 每个线程只操作分配给自己的索引,这样的话 string[] 根本就不需要上锁.
    -----------------------------------------------------------------------
    从你的需求出发,我建议只用1个固定线程读取数据(读取之后丢入队列),但是对数据有什么操作你可以创建一个线程池来进行操作.这个线程池就负责操作上面的队列.比如1个线程读(基本无阻塞)
    然后10个线程对读到的数据进行操作.
      

  2.   

    如果这种情况用list的话必须得锁上了,可以考虑 10楼的方案