拉萨饭店

dev
zj3D 7 months ago
parent 26b6f4c88b
commit 2a27a2c748

@ -50,6 +50,7 @@ if __name__ == '__main__':
这些队列提供了线程安全的数据传输机制可以避免竞态条件和数据损坏 这些队列提供了线程安全的数据传输机制可以避免竞态条件和数据损坏
全局变量不可预测 全局变量不可预测
multiprocessing.Queue在Python中的底层实现并不直接依赖于文件系统它利用了操作系统提供的进程间通信IPC, Inter-Process Communication机制具体实现取决于不同操作系统的支持 multiprocessing.Queue 利用了操作系统提供的进程间通信IPC, Inter-Process Communication机制具体实现取决于不同操作系统的支持
在Unix/Linux系统中multiprocessing.Queue通常基于管道pipes共享内存和/或消息队列等机制实现而在Windows系统上可能使用命名管道named pipes或者内存映射文件memory-mapped files以及某些版本的Windows特有的进程间同步对象如MutexesSemaphores和事件 在Unix/Linux系统中multiprocessing.Queue通常基于管道pipes共享内存和/或消息队列等机制实现
而在Windows系统上可能使用命名管道named pipes或者内存映射文件memory-mapped files以及某些版本的Windows特有的进程间同步对象如MutexesSemaphores和事件
''' '''

@ -6,14 +6,12 @@ from functools import reduce
stop_words = get_stopwords() stop_words = get_stopwords()
# map - reduce # map - reduce
def process_chunk(chunk): def process_chunk(chunk): # 过滤停用词
# 过滤停用词
words = [ w for w in chunk if ( not w in stop_words ) and len(w) >= 3 ] words = [ w for w in chunk if ( not w in stop_words ) and len(w) >= 3 ]
return Counter(words) return Counter(words)
def merge_counts(count1,count2): def merge_counts(count1,count2):
sum_counts = count1 + count2 return count1 + count2
return sum_counts
@timing_decorator @timing_decorator

@ -16,11 +16,8 @@ def process_chunk(chunk):
def merge_counts(counts_list): def merge_counts(counts_list):
# 合并多个Counter对象 """合并多个Counter对象的总和"""
total_counts = Counter() return sum(counts_list, Counter())
for counts in counts_list:
total_counts += counts
return total_counts
def thread_function(chunk, counts_list): def thread_function(chunk, counts_list):

@ -15,11 +15,8 @@ def process_chunk(chunk):
return Counter(words) return Counter(words)
def merge_counts(counts_list): def merge_counts(counts_list):
# 合并多个Counter对象 """合并多个Counter对象的总和"""
total_counts = Counter() return sum(counts_list, Counter())
for counts in counts_list:
total_counts += counts
return total_counts
@timing_decorator @timing_decorator

Loading…
Cancel
Save