多线程编程:从单线程到多线程的 Page Indexer 应用优化
1. 多线程编程基础
在多线程编程中,为了确保数据的安全性和一致性,我们需要使用一些保护机制,如 QMutex 、 QReadWriteLock 或 QSemaphore 。下面我们将以一个具体的例子来详细介绍多线程编程的实现。
2. 实现辅助线程
在这个例子中,我们使用 Walker 类来实现一个辅助线程,该类继承自 QThread 。以下是 Walker 类的代码:
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)
def __init__(self, lock, parent=None):
超级会员免费看
订阅专栏 解锁全文
17

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



