Python多线程编程与PyQt应用实践
1. 实现二级线程
在多线程编程中,二级线程的实现是一个重要的部分。以一个页面索引器(Page Indexer)为例,其二级线程在 chap19/walker.py 文件中的 Walker 类里实现。这个类是 QThread 的子类,它使用 QMutex 保护对自身私有数据的访问,使用传入的 QReadWriteLock 保护与主线程共享的数据。
class Walker(QThread):
COMMON_WORDS_THRESHOLD = 250
MIN_WORD_LEN = 3
MAX_WORD_LEN = 25
INVALID_FIRST_OR_LAST = frozenset("0123456789_")
STRIPHTML_RE = re.compile(r"<[^>]*?>", re.IGNORECASE|re.MULTILINE)
ENTITY_RE = re.compile(r"&(\w+?);|&#(\d+?);")
SPLIT_RE = re.compile(r"\W+", re.IGNORECASE|re.MULTILINE)
这个类开头定义了一些静态变量:
| 变量名 | 作用 |
| ---- | ---- |
| COMMON_WORDS_THRESHO
超级会员免费看
订阅专栏 解锁全文
1186

被折叠的 条评论
为什么被折叠?



