在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  HTML/ python gevent 協(xié)程的問題

python gevent 協(xié)程的問題

first_time = time.time()
        for j in range(1, 45): #總共876北京城市的
          if 1 <= j<= 44:
            threads = [gevent.spawn(self.Orange_Financing_Merge, i, "北京") for i in range(1, 20)]
            gevent.joinall(threads)
            print("\033[0;31m%s\033[0m" % ">>>>>>>>>>>>>>>>>>>>>page %d>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" % (i))


          else:
            start_time = time.time()
            threads = [gevent.spawn(self.Orange_Financing_Merge, i, "北京") for i in range(1, 16)]
            gevent.joinall(threads)
            end_time = time.time()
            print("總計時間為%d" % (end_time - start_time))
        second_time = time.time()
        

我現(xiàn)在是網(wǎng)頁頁數(shù)是876 頁,但是現(xiàn)在我想gevent 異步 并發(fā)量是20 ,想40多秒寫完,如何去寫,我這樣寫的有問題嗎?

回答
編輯回答
短嘆

gevent.joinall
英文解釋:Wait for the greenlets to finish.
中文解釋:等待協(xié)程結束

例子:


In [1]: import gevent

In [2]: def solve(i):
   ...:     return i
   ...: 

In [3]: threads = [gevent.spawn(solve,i) for i in range(1,10)]

In [4]: gevent.joinall(threads)
Out[4]: 
[<Greenlet at 0x10eaa8b90>,
 <Greenlet at 0x10eaa8d70>,
 <Greenlet at 0x10eaa8e10>,
 <Greenlet at 0x10eaa8550>,
 <Greenlet at 0x10eaa8a50>,
 <Greenlet at 0x10eaa8690>,
 <Greenlet at 0x10eaa8eb0>,
 <Greenlet at 0x10eaa8f50>,
 <Greenlet at 0x10eaa8c30>]

In [5]: print([t.value for t in threads])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
2017年5月7日 00:28