29章アクター――スレッドActor

†1

[†1] 12章のレターボックススタイルに似ているが、モノが独立した実行スレッドを持つ。

制約

  • より大きな問題は、問題領域に対して意味のあるモノに分解される。
  • モノは、他のモノがメッセージを入れるためのキューを持つ。
  • モノは、データのカプセルであり、キュー経由でメッセージを受信する能力のみ公開する。
  • モノは、他とは独立した独自の実行スレッドを持つ。

プログラム

  1 #!/usr/bin/env python
  2
  3 import sys, re, operator, string
  4 from threading import Thread
  5 from queue import Queue
  6
  7 class ActiveWFObject(Thread):
  8     def __init__(self):
  9         super(ActiveWFObject, self).__init__()
 10         self.name = str(type(self))
 11         self.queue = Queue()
 12         self._stop_me = False
 13         self.start()
 14
 15     def run(self):
 16         while not self._stop_me:
 17             message = self.queue.get()
 18             self._dispatch(message)
 19 ...

Get プログラミング文体練習 ―Pythonで学ぶ40のプログラミングスタイル now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.