博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(原)torch中threads的addjob函数使用方法
阅读量:6975 次
发布时间:2019-06-27

本文共 1197 字,大约阅读时间需要 3 分钟。

转载请注明出处:

参考网址:

 

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为在主线程中执行的函数。

 

你可能感兴趣的文章
iview-admin运行步骤
查看>>
原生表格组件--GridManager
查看>>
面试阿里,我还是挂在了第四轮……
查看>>
面试官:说说Java线程的生命周期
查看>>
5分钟从零构建第一个 Apache Flink 应用
查看>>
按钮代码 带注释
查看>>
springBoot + KISSO实现单点登录
查看>>
Promise面试题
查看>>
HA高可用
查看>>
轻松了解EOS
查看>>
数据结构与算法-day6-跳表
查看>>
JVM学习笔记——程序计数器
查看>>
【国际IT专场】每个程序猿必须且一定要懂的“数据库索引
查看>>
正则表达式基本用法
查看>>
JS中的继承模式
查看>>
生命周期组件 Lifecycle 源码解析(一)
查看>>
TNW-获取微信公众号的 access_token
查看>>
广州,后会有期
查看>>
谈谈关于 iOS 的架构以及应用
查看>>
ElasticSearch 学习总结
查看>>