感觉效果应该很好,但是看看这些代码!初始化方法、线程跟踪,最糟的是,如果你也和我一样是个容易犯死锁问题的人,这里的join语句就要出错了。这样就开始变得更加复杂了!
  到现在为止都做了些什么?基本上没什么。上面的代码都是些基础功能,而且很容易出错。(天啊,我忘了写上在队列对象上调用task_done()方法(我懒得修复这个问题在重新截图)),这真是性价比太低。所幸的是,我们有更好的办法.
    引入:Map
  Map是个很酷的小功能,也是简化Python并发代码的关键。对那些不太熟悉Map的来说,它有点类似List.它就是序列化的功能映射功能. e.g.
  urls = [', ']  results = map(urllib2.urlopen, urls)
  
  这里调用urlopen方法,并把之前的调用结果全都返回并按顺序存储到一个集合中。这有点类似
  results = []  for url in urls:      results.append(urllib2.urlopen(url))
  
  Map能够处理集合按顺序遍历,最终将调用产生的结果保存在一个简单的集合当中。
  为什么要提到它?因为在引入需要的包文件后,Map能大大简化并发的复杂度!
  
  
  
  
  
  
  
  支持Map并发的包文件有两个:
  Multiprocessing,还有少为人知的但却功能强大的子文件 multiprocessing.dummy. .
     </td>