换鞋凳厂家
免费服务热线

Free service

hotline

010-00000000
换鞋凳厂家
热门搜索:
成功案例
当前位置:首页 > 成功案例

看一看:Jython线程示例:定义共享缓冲区

发布时间:2022-04-02 09:24:46 阅读: 来源:换鞋凳厂家
Jython线程示例:定义共享缓冲区 作者:佚名 2009-07-15 15:50:48 开发 后端 本文通过一个实例讲解了如何使用Jython线程房产房拆迁是怎么补偿的。这个例子显示了一组生产者(producer)和消费者(consumer)线程,它们共享对一个公共缓冲区的访问。

下面是一个使用 Jython线程的例子。这个例子显示了一组生产者(producer)和消费者(consumer)线程,它们共享对一个公共缓冲区的访问。我们首先定义这个共享缓冲区,如下所示:

  1. """Jython线程示例"""
  2. fromjavaimportlang
  3. fromsynchronizeimport*
  4. fromthreadimportstart_new_thread
  5. fromsysimportstdout
  6. def__waitForSignal(monitor):
  7. apply_synchronized(monitor,lang.Object.wait,(monitor,))
  8. def__signal(monitor):
  9. apply_synchronized(monitor砖厂被强拆怎么起诉,lang.Object.notifyAll,(monitor,))
  10. def__xprint(stream,msg):
  11. print>>stream,msg
  12. defxprint(msg,stream=stdout):
  13. """Synchronizedprint."""
  14. apply_synchronized(stream,__xprint,(stream,msg))
  15. classBuffer:
  16. """Athread-safebuffer."""
  17. def__init__(self,limit=-1):
  18. self.__limit=limit#themaxsizeofthebuffer
  19. self.__data=[]
  20. self.__added=()#usedtosignaldataadded
  21. self拆迁中房屋评估具备哪些条件.__removed=()#usedtosignaldataremoved
  22. def__str__(self):
  23. return"Buffer(%s,%i)"%(self.__data,self.__limit)
  24. def__len__(self):
  25. returnlen(self.__data)
  26. defadd(self,item):
  27. """添加项目。满的时候等待。"""
  28. ifself.__limit>=0:
  29. whilelen(self.__data)>self.__limit:
  30. __waitForSignal(self.__removed)
  31. self.__data.append(item);
  32. xprint("Added:%s"%item)
  33. __signal(self.__added)
  34. def__get(self):
  35. item=self.__data.pop(0)
  36. __signal(self.__removed)
  37. returnitem
  38. defget(self,wait=1):
  39. """Removeanitem.Waitifempty."""
  40. item=None
  41. ifwait:
  42. whilelen(self.__data)==0:
  43. __waitForSignal(self.__added)
  44. item=self.__get()
  45. else:
  46. iflen(self.__data)>0:item=self.__get()
  47. xprint("Removed:%s"%item)
  48. returnitem
  49. get=make_synchronized(get)

以上就是一个Jython线程的示例。

【编辑推荐】

  1. 与Java语言相比Jython开发的独特性能
  2. 与Java相比Jython性能表现
  3. 在代码中深入学习Jython语法
  4. 在Eclipse下配置Jython的简易流程
  5. 使用Jython脚本管理WebSphere资源