[原创]Lua5.3多线程版本 (Windows 32)
发表于:
2015-3-27 10:34
15358
[原创]Lua5.3多线程版本 (Windows 32)
先贴一下运行效果:
(看文章下面已经有新的版本了!!!)
早就看到Lua可以支持多线程的帖子,但也没见人发布一个多线程的Lua解释器。于是自己根据前人的经验编译了一个。本来想发在Lua中国开发者这个论坛上,不过看上面没大有讨论Lua技术的,基本都是游戏之类的,而且我的密码也忘了,多次找回密码都没反应。所以来到了看雪,我的家。让小伙伴们多了解一下Lua这个小巧而又强大的脚本语言。
修改方法参考的这个帖子:http://www.cnblogs.com/zhangdongsheng/p/3679024.html
源代码来自于Lua官方网站:http://www.lua.org/
我修改后的代码放在了Github上:https://github.com/luzhlon/Lua53MT
感兴趣的一起来和我交流,给我提建议也好。
多线程的Lua解释器: (下面有新的!!!!)
-------------------------------------------------------------------------------------------------------
--------------------------------------------------更新------------------------------------------------
-------------------------------------------------------------------------------------------------------
2015-3-28
新版本的运行截图:
这次主要将newthread和startthread这两个全局函数去掉,改为加入了systhread这个库。
测试代码:
local function ff1(n)
for i = 1, n do
print('Thread 1 --> \t'..i)
end
end
local function ff2(n)
for i = 1, n do
print('Thread 2 --> \t'..i)
end
end
local function ff3(n)
for i = 1, n do
print('Thread 3 --> \t'+i)--Error code
end
end
local function ff4(n)
for i = 1, n do
print('Thread 4 --> \t'..i)
--systhread.sleep(5)
end
end
local st1 = systhread.create(ff1, 4)
local st2 = systhread.create(ff2, 6)
local st3 = systhread.create(ff3, 8)
st1:resume()
st2:resume()
st3:resume()
st1:wait() print('Thread 1 exitcode : '..st1:exitcode())
st2:wait() print('Thread 2 exitcode : '..st2:exitcode())
st3:wait() print('Thread 3 exitcode : '..st3:exitcode())
print ''
print 'Create st4 ...'
local st4 = systhread.create(ff4, 10)
print 'Resume st4 ...'
st4:resume()
systhread.sleep(5)
print 'Suspend st4 ...'
st4:suspend()
print 'Resume st4 ...'
st4:resume()
新的多线程Lua解释器: lua.zip
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
上传的附件: