代码拉取完成,页面将自动刷新
producer = coroutine.create( -- 创建一个协同程序
function() -- 生产者
while true do
local x = io.read() -- 产生新的值
print("生产一个值",x)
send(x) -- 挂起生产者协同程序,发送给消费者
end
end
)
function consumer() -- 消费者
while true do
local x = receive() -- 激活生产者协同程序 ,从生产者接收值
io.write(x,"\n") -- 消费新的值
print("生消费一个值:",x)
end
end
function receive() -- 激活一个协同程序 同时传递参数
local status,value = coroutine.resume(producer)
return value
end
function send(x) -- 挂起一个协同程序 同时传递参数
coroutine.yield(x)
end
consumer() -- 初始化消费者并启动程序
function receive(prod) -- 激活协同程序
local status,value = coroutine.resume(prod)
return value
end
function send(x) -- 将协同程序挂起
coroutine.yield(x)
end
function producer() -- 生产者
return coroutine.create( function() -- 创建一个协同程序
while true do
local x = io.read() -- 产生新值
send(x)
end
end
)
end
function filter(prod) -- 过滤器
return coroutine.create( -- 创建一个协同程序
function()
for line = 1, math.huge do
local x = receive(prod) -- 激活协同程序 获取新值
x = string.format("%5d %s",line , x )
send(x) -- 挂起激活程序
end
end
)
end
function consumer(prod)
while true do
local x = receive(prod) -- 获取新值
io.write(x, "\n")
end
end
p= producer() -- 初始化生产者
f = filter(p) -- 初始化过滤器
consumer(f) -- 初始化消费者 并 启动程序
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。