设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 16962|回复: 3
打印 上一主题 下一主题

关于74课 多线程 返回结果不对 问题

[复制链接]

3

主题

0

好友

53

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2017-9-15 17:03:37 |只看该作者 |倒序浏览
本帖最后由 silen_lu 于 2017-9-15 17:09 编辑

照敲的代码,怎么返回结果就是不一样呢?方法中 print i,time.time()-time_start print 'data:',len(data) 这两行代码的数据为啥是程序运行结束后按ENTER后才输出的一坨呢?
下面是我的代码:
import time,urllib,thread

def get_content(i):
    id = 1764796+i
    url='https://api.douban.com/v2/movie/subject/%d'%id
    d=urllib.urlopen(url).read()
    data.append(d)
    print i,time.time()-time_start
    print 'data:',len(data)

time_start=time.time()
data=[]
for i in range(30):
    print 'request movie:',i
    thread.start_new_thread(get_content,(i,))
raw_input('press ENTER to exit...\n')

我的返回结果(求指教):
request movie: 0
request movie: 1
request movie: 2
request movie: 3
request movie: 4
request movie: 5
request movie: 6
request movie: 7
request movie: 8
request movie: 9
request movie: 10
request movie: 11
request movie: 12
request movie: 13
request movie: 14
request movie: 15
request movie: 16
request movie: 17
request movie: 18
request movie: 19
request movie: 20
request movie: 21
request movie: 22
request movie: 23
request movie: 24
request movie: 25
request movie: 26
request movie: 27
request movie: 28
request movie: 29
press ENTER to exit...(此处按回车后python shell继续返回下面的数据:)

10119511141392318626243282721207151716825222294120
>>>                               9.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.934999942789.95099997529.95099997529.95099997529.95099997529.95099997529.9509999752





























data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:data:                              303030303030303030303030303030303030303030303030303030303030
















回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2017-9-16 19:56:49 |只看该作者
因为在输出之前,主线程已经运行到input那里,等待你输入,其他的输出都被阻塞了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

28

积分

新手上路

Rank: 1

板凳
发表于 2017-12-19 18:08:31 |只看该作者
thread.start_new_thread(get_content,(i,)) 老师 问一下 为什么这个第二个参数中要带一个‘,’,如果是(i)这样不是元祖嘛?
回复

使用道具 举报

0

主题

0

好友

28

积分

新手上路

Rank: 1

地板
发表于 2018-1-13 18:58:54 |只看该作者
crossin先生 发表于 2017-9-16 19:56
因为在输出之前,主线程已经运行到input那里,等待你输入,其他的输出都被阻塞了 ...

老师,我的返回结果也是这样一堆,是为什么呢?而且我后面返回的data都是29
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-25 10:37 , Processed in 0.014012 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部