成人免费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-11-16 16:59:24

Oracle優化庫高速

2023-10-09 23:01:09

MySQL數據庫

2009-09-24 18:16:40

2011-07-20 10:54:14

C++

2010-12-27 10:21:21

2015-03-06 17:09:10

2022-05-07 08:27:42

緩沖區溢出堆棧

2010-10-09 14:45:48

2020-08-10 08:37:32

漏洞安全數據

2022-03-03 09:20:08

分布式數據庫場景

2010-09-08 15:43:18

2011-03-23 12:39:44

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 999精品在线| www.亚洲.com | 丁香久久| 精品日韩一区二区 | 久久久久成人精品 | 国产视频亚洲视频 | 国产一区二区三区在线 | 91在线观看免费视频 | 欧美精品久久久久 | 国产欧美在线一区二区 | 日韩精品亚洲专区在线观看 | 天天综合网天天综合色 | 伊人伊人| 国产精品一区二区三区在线 | 亚洲福利网 | 日韩乱码在线 | 偷拍亚洲色图 | 91久久久久| 精品一区av| 国产成人综合一区二区三区 | 久久综合九色综合欧美狠狠 | 日韩激情免费 | 久久久久亚洲精品国产 | 欧美久久久电影 | 欧美日韩国产在线观看 | 日韩成人av在线 | 午夜视频一区二区三区 | www.久久 | 高清免费av | 精品中文字幕一区二区三区 | 一区二区三区 在线 | 国产精品免费一区二区三区四区 | 992人人草 | 青草青草久热精品视频在线观看 | 日韩成人精品一区二区三区 | 日韩在线观看 | 伊人网伊人网 | 亚洲高清在线观看 | 欧美簧片 | re久久| 欧美一区二区在线 |