搜索
查看: 4206|回复: 5

关于thread.works的疑惑

[复制链接]

6

主题

15

帖子

93

积分

一级会员

Rank: 2

积分
93
发表于 2014-4-10 22:01:21 | 显示全部楼层 |阅读模式
请问thread.works是多线程吗?下面的代码返回的thread.getId()都是一样的,不太明白,请教大家:

  1. //多线程任务分派
  2. import thread.works;

  3. io.open()
  4. var works = thread.works( 1,
  5.         function(...) {
  6.                 thread.lock("写控制台")
  7.                 io.print("线程ID" + thread.getId(),",开始工作,接收到任务指令参数",...)
  8.                 thread.unlock("写控制台")
  9.                
  10.                 return "返回值,线程ID" + thread.getId();
  11.         }
  12. );

  13. //分派任务
  14. works.push("1个任务")
  15. works.push("2个任务")
  16. works.push("3个任务")
  17. works.push("4个任务")
  18. works.push("5个任务")
  19. works.push("6个任务")

  20. //等待任务完成
  21. works.waitClose(
  22.         function(r){
  23.                 io.print( "检查成果", r  )
  24.         }
  25. )
  26.    
  27. io.print("OK")
复制代码
回复

使用道具 举报

1

主题

43

帖子

1145

积分

四级会员

Rank: 6Rank: 6

积分
1145
发表于 2014-4-10 22:25:52 | 显示全部楼层

thread.works(线程数,工作函数,等待延时,初始化函数,…) 你把线程数设定为1,当然代码返回的thread.getId()都是一样的

thread.works(线程数,工作函数,等待延时,初始化函数,…)

你把线程数设定为1,当然代码返回的thread.getId()都是一样的
回复

使用道具 举报

6

主题

15

帖子

93

积分

一级会员

Rank: 2

积分
93
 楼主| 发表于 2014-4-10 22:44:35 | 显示全部楼层

谢谢明白了,对了,如果设置为10,works.push 5个任务,这样可以吗?,其它五个线程不会在后台运行吧?

谢谢明白了,对了,如果设置为10,works.push 5个任务,这样可以吗?,其它五个线程不会在后台运行吧?
回复

使用道具 举报

12

主题

309

帖子

1798

积分

荣誉会员

Rank: 8Rank: 8

积分
1798
发表于 2014-4-10 23:35:32 | 显示全部楼层

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=65535&ptid=11889][c

sdzzrq 发表于 2014-4-10 22:44
谢谢明白了,对了,如果设置为10,works.push 5个任务,这样可以吗?,其它五个线程不会在后台运行吧?

线程当然是在后台运行,不然你要用线程干什么?

你创建几个线程,跟线程执行几个任务是两回事。
你创建2个线程执行5个任务,等于你请两个工人帮你完成5份工作,你让他完成50份工作工人也不会变的更多。很简单的逻辑能明白吧?!
回复

使用道具 举报

12

主题

309

帖子

1798

积分

荣誉会员

Rank: 8Rank: 8

积分
1798
发表于 2014-4-10 23:37:45 | 显示全部楼层

你创建10个线程,执行五个任务,那其他5个线程就是在那玩 - 或者说空转。 如果那一个线程比较勤快、那么他可能一个人完成多个任务,那就不止五个线程在那里玩了,

你创建10个线程,执行五个任务,那其他5个线程就是在那玩 - 或者说空转。
如果那一个线程比较勤快、那么他可能一个人完成多个任务,那就不止五个线程在那里玩了,
所以线程应当要比可能并发执行的任务数少一些,这样才不浪费人力。
回复

使用道具 举报

6

主题

15

帖子

93

积分

一级会员

Rank: 2

积分
93
 楼主| 发表于 2014-4-11 08:27:29 | 显示全部楼层

谢谢,解释的很清楚,感谢你auaau{:3_46:}{:3_46:}

谢谢,解释的很清楚,感谢你auaau
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-15 15:39 , Processed in 0.109375 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表