日期:2014-05-17  浏览次数:20398 次

php并发抓图怎么知道有没抓完呢
我有个程序,将图片抓回来;然后打包成zip。
当前用的是单线程,由于实在太慢。所以想用多线程并发抓。
但这样做的话,我不知道什么时候可以打包zip。
大侠们给点建议吧 

------解决方案--------------------
抓回来了才会写盘
你在程序中维护一个目标列表,当列表中的文件都存在了,就可以打包了
------解决方案--------------------
PV操作。。你要维持一个信号量。简单的说是一个变量。如果程序运行之前你就知道要抓取多少文件,那么这个值在一开始就是确定的,比如说你知道要抓取5张图片,那么这个变量的值就是5,每个子进程完成一张图片抓取动作这个变量就减一,最终为0时表示全抓完了。

如果一开始不知道要抓多少图片,那么这个信号量需要动态维护了,且要加入其他信号量来控制进程间的同步。比如有可能该信号量为0,但实际上还有进程在分析是否还有图片要进行抓取,而因为该信号量为0,程序直接退出。这样的情况也要考虑。