首页 > 代码库 > (原)torch中threads的addjob函数使用方法
(原)torch中threads的addjob函数使用方法
转载请注明出处:
http://www.cnblogs.com/darkknightzh/p/6549452.html
参考网址:
https://github.com/torch/threads#examples
1. addjob简单示例
参考网址中给出了torch中threads的addjob函数使用方法:
local threads = require ‘threads‘local nthread = 4local njob = 10local msg = "hello from a satellite thread"local pool = threads.Threads( nthread, function(threadid) print(‘starting a new thread/state number ‘ .. threadid) gmsg = msg -- get it the msg upvalue and store it in thread state end)local jobdone = 0for i=1,njob do pool:addjob( function() -- note1 print(string.format(‘%s -- thread ID is %x‘, gmsg, __threadid)) return __threadid end, function(id) print(string.format("task %d finished (ran on thread ID %x)", i, id)) jobdone = jobdone + 1 end -- note2 )endpool:synchronize()print(string.format(‘%d jobs done‘, jobdone))pool:terminate()
上面程序是一个简单的例子。
2. addjob传入参数
note1的地方,当该函数无输入参数时,直接那样写,同时note2处什么也不写。
如果note1的function需要传入参数,可以写上参数列表,同时在note2处加上参数。如下所示:
pool:addjob( function(variable1, variable2, bariable3) -- note1 -- code … end, function(id) -- code … end, var1, -- note2 var2, var3)
3. addjob函数说明
addjob函数如下:
Threads:addjob([id], callback, [endcallback], [...])
callback为在队列线程中执行的函数,endcallback为在主线程中执行的函数。
(原)torch中threads的addjob函数使用方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。