码迷,mamicode.com
首页 > 其他好文 > 详细

生产者消费者

时间:2015-01-22 20:12:38      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

producer =coroutine.create(function ()   --生产者
    while true do
        local x = io.read()  --生产新的值
        send(x)              --发送给消费者
    end
end)

function consumer()   --消费者
    while true do
        local x = receive() --从生产者接受值
        io.write(x, "\n")   --消费新的值
    end
end

function receive()
    local status, value = coroutine.resume(producer)
    return value
end

function send(x) --发送
    coroutine.yield(x)
end

consumer()


---------------------------------------------------------------------------------

 


 



function producer() --生产者
  return coroutine.create(function()
    while true do
      local x = io.read() --生产新的值
      send(x) --发送给消费者
    end
  end)
end


 


function receive(prod)
  local status, value = coroutine.resume(prod)
  return value
end


function send(x) --发送
  coroutine.yield(x)
end


function filter(prod)
  return coroutine.create(function ()
    for line = 1, math.huge do
      local x= receive(prod) --获取新值
      x = string.format("%d %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)

 

 

生产者消费者

标签:

原文地址:http://www.cnblogs.com/vagaband/p/4242466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!