From 2a27a2c7485ec471bbf52702e0feb501b85daaf5 Mon Sep 17 00:00:00 2001 From: zj3D Date: Sat, 27 Apr 2024 23:58:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=89=E8=90=A8=E9=A5=AD=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../函数/1 全局变量.py | 0 .../函数/2 临时变量传递.py | 0 .../函数/3 常见风格.py | 0 {11 概念认知 => 11 基础结构}/函数/4 递归.py | 0 .../对象化/1 类对象.py | 0 .../对象化/2 字典对象.py | 0 .../流式调用/1 嵌套调用.py | 0 .../流式调用/2 方法bind.py | 0 .../流式调用/3 重载管道.py | 0 .../流式调用/4 类方法.py | 0 .../流式调用/5 类方法.py | 0 13 多计算单元/数据共享/1 内存/1 队列.py | 5 +++-- 13 多计算单元/数据分包/1 mapreduce.py | 6 ++---- 13 多计算单元/数据分包/2 多线程.py | 7 ++----- 13 多计算单元/数据分包/3 多进程.py | 7 ++----- 15 files changed, 9 insertions(+), 16 deletions(-) rename {11 概念认知 => 11 基础结构}/函数/1 全局变量.py (100%) rename {11 概念认知 => 11 基础结构}/函数/2 临时变量传递.py (100%) rename {11 概念认知 => 11 基础结构}/函数/3 常见风格.py (100%) rename {11 概念认知 => 11 基础结构}/函数/4 递归.py (100%) rename {11 概念认知 => 11 基础结构}/对象化/1 类对象.py (100%) rename {11 概念认知 => 11 基础结构}/对象化/2 字典对象.py (100%) rename {11 概念认知 => 11 基础结构}/流式调用/1 嵌套调用.py (100%) rename {11 概念认知 => 11 基础结构}/流式调用/2 方法bind.py (100%) rename {11 概念认知 => 11 基础结构}/流式调用/3 重载管道.py (100%) rename {11 概念认知 => 11 基础结构}/流式调用/4 类方法.py (100%) rename {11 概念认知 => 11 基础结构}/流式调用/5 类方法.py (100%) diff --git a/11 概念认知/函数/1 全局变量.py b/11 基础结构/函数/1 全局变量.py similarity index 100% rename from 11 概念认知/函数/1 全局变量.py rename to 11 基础结构/函数/1 全局变量.py diff --git a/11 概念认知/函数/2 临时变量传递.py b/11 基础结构/函数/2 临时变量传递.py similarity index 100% rename from 11 概念认知/函数/2 临时变量传递.py rename to 11 基础结构/函数/2 临时变量传递.py diff --git a/11 概念认知/函数/3 常见风格.py b/11 基础结构/函数/3 常见风格.py similarity index 100% rename from 11 概念认知/函数/3 常见风格.py rename to 11 基础结构/函数/3 常见风格.py diff --git a/11 概念认知/函数/4 递归.py b/11 基础结构/函数/4 递归.py similarity index 100% rename from 11 概念认知/函数/4 递归.py rename to 11 基础结构/函数/4 递归.py diff --git a/11 概念认知/对象化/1 类对象.py b/11 基础结构/对象化/1 类对象.py similarity index 100% rename from 11 概念认知/对象化/1 类对象.py rename to 11 基础结构/对象化/1 类对象.py diff --git a/11 概念认知/对象化/2 字典对象.py b/11 基础结构/对象化/2 字典对象.py similarity index 100% rename from 11 概念认知/对象化/2 字典对象.py rename to 11 基础结构/对象化/2 字典对象.py diff --git a/11 概念认知/流式调用/1 嵌套调用.py b/11 基础结构/流式调用/1 嵌套调用.py similarity index 100% rename from 11 概念认知/流式调用/1 嵌套调用.py rename to 11 基础结构/流式调用/1 嵌套调用.py diff --git a/11 概念认知/流式调用/2 方法bind.py b/11 基础结构/流式调用/2 方法bind.py similarity index 100% rename from 11 概念认知/流式调用/2 方法bind.py rename to 11 基础结构/流式调用/2 方法bind.py diff --git a/11 概念认知/流式调用/3 重载管道.py b/11 基础结构/流式调用/3 重载管道.py similarity index 100% rename from 11 概念认知/流式调用/3 重载管道.py rename to 11 基础结构/流式调用/3 重载管道.py diff --git a/11 概念认知/流式调用/4 类方法.py b/11 基础结构/流式调用/4 类方法.py similarity index 100% rename from 11 概念认知/流式调用/4 类方法.py rename to 11 基础结构/流式调用/4 类方法.py diff --git a/11 概念认知/流式调用/5 类方法.py b/11 基础结构/流式调用/5 类方法.py similarity index 100% rename from 11 概念认知/流式调用/5 类方法.py rename to 11 基础结构/流式调用/5 类方法.py diff --git a/13 多计算单元/数据共享/1 内存/1 队列.py b/13 多计算单元/数据共享/1 内存/1 队列.py index fc0bc89..8f6e787 100644 --- a/13 多计算单元/数据共享/1 内存/1 队列.py +++ b/13 多计算单元/数据共享/1 内存/1 队列.py @@ -50,6 +50,7 @@ if __name__ == '__main__': 这些队列提供了线程安全的数据传输机制,可以避免竞态条件和数据损坏。 全局变量不可预测 -multiprocessing.Queue在Python中的底层实现并不直接依赖于文件系统。它利用了操作系统提供的进程间通信(IPC, Inter-Process Communication)机制,具体实现取决于不同操作系统的支持。 -在Unix/Linux系统中,multiprocessing.Queue通常基于管道(pipes)、共享内存和/或消息队列等机制实现。而在Windows系统上,可能使用命名管道(named pipes)或者内存映射文件(memory-mapped files),以及某些版本的Windows特有的进程间同步对象如Mutexes、Semaphores和事件。 +multiprocessing.Queue 利用了操作系统提供的进程间通信(IPC, Inter-Process Communication)机制,具体实现取决于不同操作系统的支持。 +在Unix/Linux系统中,multiprocessing.Queue通常基于管道(pipes)、共享内存和/或消息队列等机制实现。 +而在Windows系统上,可能使用命名管道(named pipes)或者内存映射文件(memory-mapped files),以及某些版本的Windows特有的进程间同步对象如Mutexes、Semaphores和事件。 ''' \ No newline at end of file diff --git a/13 多计算单元/数据分包/1 mapreduce.py b/13 多计算单元/数据分包/1 mapreduce.py index ead5f8c..a0dcd22 100644 --- a/13 多计算单元/数据分包/1 mapreduce.py +++ b/13 多计算单元/数据分包/1 mapreduce.py @@ -6,14 +6,12 @@ from functools import reduce stop_words = get_stopwords() # 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 ] return Counter(words) def merge_counts(count1,count2): - sum_counts = count1 + count2 - return sum_counts + return count1 + count2 @timing_decorator diff --git a/13 多计算单元/数据分包/2 多线程.py b/13 多计算单元/数据分包/2 多线程.py index a28f00f..ed7da21 100644 --- a/13 多计算单元/数据分包/2 多线程.py +++ b/13 多计算单元/数据分包/2 多线程.py @@ -16,11 +16,8 @@ def process_chunk(chunk): def merge_counts(counts_list): - # 合并多个Counter对象 - total_counts = Counter() - for counts in counts_list: - total_counts += counts - return total_counts + """合并多个Counter对象的总和""" + return sum(counts_list, Counter()) def thread_function(chunk, counts_list): diff --git a/13 多计算单元/数据分包/3 多进程.py b/13 多计算单元/数据分包/3 多进程.py index 0fbbe7e..f979182 100644 --- a/13 多计算单元/数据分包/3 多进程.py +++ b/13 多计算单元/数据分包/3 多进程.py @@ -15,11 +15,8 @@ def process_chunk(chunk): return Counter(words) def merge_counts(counts_list): - # 合并多个Counter对象 - total_counts = Counter() - for counts in counts_list: - total_counts += counts - return total_counts + """合并多个Counter对象的总和""" + return sum(counts_list, Counter()) @timing_decorator