轻盈小刀-LUA

突破C++的局限,让编程语言大同
随笔 - 13, 文章 - 1, 评论 - 13, 引用 - 0
数据加载中……

lua 应用服务器

线程模块(luathread.dll)

     新线程池创建,可以指定启动一个或多个线程

     thread.new('线程入口脚本文件', 线程数量);
     会根据线程数量创建多个线程,并且分别初始化每个线程的lua运行环境,并执行指定的线程脚本。

     tlist = thread.newlist('队列类型', '队列名称');
     创建一个同步队列,返回队列对象,此对象必须可以在多个线程中共享的,而且相同名称的对象
只能存在一个。

    tlist:create_new_object();
    创建新的对象,次对象可以加入到请求队列中

    tlist:push_request(obj);
    将通过create_new_object()创建的对加入到队列中

    tlist:wait_for_req(timeout);
    等待队列中有可以处理的请求

   tlist:get_request();
   从请求队列中取出一个请求来进行数据处理

  tlist:get_wait_object();
  返回可等待对象,以便脚本可以执行多个对象的等待任务

  tlist:get_info();
  获得队列的一些相关信息

线程代码
线程1:
   local tlist = thread.newlist('test', 'test0');
   local d = tlist:create_new_object();
   d:setdata('test', 'hello world');
   tlist:push_request(d);

线程2:
   local  tlist  = thread.newlist('test', 'test0');
   while(tlist:wait_for_request(1000)) do
             local d = tlist:get_request();
            handlesomething(d);
   end

posted on 2010-04-05 23:20 绝对在乎你 阅读(821) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理