成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Jython線程示例:定義共享緩沖區

開發 后端
本文通過一個實例講解了如何使用Jython線程。這個例子顯示了一組生產者(producer)和消費者(consumer)線程,它們共享對一個公共緩沖區的訪問。

下面是一個使用 Jython線程的例子。這個例子顯示了一組生產者(producer)和消費者(consumer)線程,它們共享對一個公共緩沖區的訪問。我們首先定義這個共享緩沖區,如下所示:

  1. """ Jython線程示例 """ 
  2.  
  3. from java import lang   
  4. from synchronize import *  
  5. from thread import start_new_thread  
  6. from sys import stdout  
  7.  
  8. def __waitForSignal (monitor):  
  9.     apply_synchronized(monitor, lang.Object.wait, (monitor,))  
  10.  
  11. def __signal (monitor):  
  12.     apply_synchronized(monitor, lang.Object.notifyAll, (monitor,))  
  13.  
  14. def __xprint (stream, msg):  
  15.     print >>stream, msg  
  16.  
  17. def xprint (msg, stream=stdout):  
  18.     """ Synchronized print. """ 
  19.     apply_synchronized(stream, __xprint, (stream, msg))  
  20.  
  21. class Buffer:  
  22.     """ A thread-safe buffer. """ 
  23.  
  24.     def __init__ (self, limit=-1):  
  25.         self.__limit = limit    # the max size of the buffer  
  26.         self.__data = []  
  27.         self.__added = ()       # used to signal data added  
  28.         self.__removed = ()     # used to signal data removed  
  29.  
  30.     def __str__ (self):  
  31.         return "Buffer(%s,%i)" % (self.__data, self.__limit)  
  32.  
  33.     def __len__ (self):  
  34.         return len(self.__data)  
  35.  
  36.     def add (self, item):  
  37.         """ 添加項目。滿的時候等待。 """ 
  38.         if self.__limit >= 0:  
  39.             while len(self.__data) > self.__limit:  
  40.                 __waitForSignal(self.__removed)  
  41.         self.__data.append(item);  
  42.         xprint("Added: %s" % item)  
  43.         __signal(self.__added)  
  44.  
  45.     def __get (self):  
  46.         item = self.__data.pop(0)  
  47.         __signal(self.__removed)  
  48.         return item  
  49.  
  50.     def get (self, wait=1):  
  51.         """ Remove an item. Wait if empty. """ 
  52.         item = None 
  53.         if wait:  
  54.             while len(self.__data) == 0:  
  55.                 __waitForSignal(self.__added)  
  56.             item = self.__get()  
  57.         else:  
  58.             if len(self.__data) > 0: item = self.__get()  
  59.         xprint("Removed: %s" % item)  
  60.         return item  
  61.     get = make_synchronized(get)  

以上就是一個Jython線程的示例。

【編輯推薦】

  1. 與Java語言相比Jython開發的獨特性能
  2. 與Java相比Jython性能表現
  3. 在代碼中深入學習Jython語法
  4. 在Eclipse下配置Jython的簡易流程
  5. 使用Jython腳本管理WebSphere資源
責任編輯:yangsai 來源: 網絡轉載
相關推薦

2011-12-14 16:30:42

javanio

2017-01-09 17:03:34

2019-02-27 13:58:29

漏洞緩沖區溢出系統安全

2017-07-04 17:09:10

Map環形緩沖區數據

2014-07-30 11:21:46

2018-01-26 14:52:43

2009-11-16 17:26:17

Oracle優化緩沖區

2009-11-16 17:08:59

Oracle日志緩沖區

2009-09-24 18:16:40

2023-10-09 23:01:09

MySQL數據庫

2009-11-16 16:59:24

Oracle優化庫高速

2011-07-20 10:54:14

C++

2010-12-27 10:21:21

2015-03-06 17:09:10

2010-10-09 14:45:48

2022-05-07 08:27:42

緩沖區溢出堆棧

2022-03-03 09:20:08

分布式數據庫場景

2020-08-10 08:37:32

漏洞安全數據

2010-09-08 15:43:18

2011-03-23 12:39:44

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区二区av | 一级久久久久久 | 精品一区av| 成人免费网站视频 | 久久久久久久亚洲精品 | av一级久久| 欧美日批 | 新疆少妇videos高潮 | 亚洲一区二区三区高清 | 久久综合狠狠综合久久 | 精品一区二区三区四区五区 | 中文字幕一区二区视频 | 亚洲国产精品成人综合久久久 | 一区精品视频在线观看 | 夜夜艹 | 国产精品视频一区二区三区不卡 | 精品久久久久香蕉网 | 欧美一级欧美一级在线播放 | 草久久久| 91n成人| 亚洲一级在线 | 色资源站| 国产激情视频在线 | 久久精品中文 | 一区二区三区不卡视频 | 一级片aaa| 精品国产乱码一区二区三区a | 国产在线观看免费 | av网站免费在线观看 | 91在线观看免费视频 | 亚洲精品国产一区 | 国产在线a| 成人免费网站 | 国产精品伦一区二区三级视频 | 色呦呦在线 | 亚洲久久一区 | 嫩草国产 | 亚洲精品一区av在线播放 | 国产免费观看久久黄av片涩av | 99久久免费精品 | 国产精品国产成人国产三级 |