(原)torch中threads的addjob函数使用方法

Posted darkknightzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(原)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 = 4
local njob = 10
local 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 = 0
for 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
   )
end

pool: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函数使用方法的主要内容,如果未能解决你的问题,请参考以下文章

(原)torch7中指定可见的GPU

(原)torch的训练过程

C# PrintQueue AddJob printingHandle 抛出空异常

PyTorch的一些类及函数

(原)luarocks更新某个模块

gin结合cron,实现定时任务