社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Masklinn

Masklinn 最近创建的主题
Masklinn 最近回复了
3 年前
回复了 Masklinn 创建的主题 » 子进程不会在并行多处理Python中运行
pool = Pool(cpu_count())

无用,这是默认行为

pool.apply_async(run, args=())
sleep(0.2)

这符合 任务,因为你在之后睡觉,除非任务需要超过200毫秒(这是不可能的,200毫秒是不可能的) 很多 )所有提交文件将按顺序进行

processes.append(Process(target=run, args=()))
processes[-1].start()
sleep(0.2)

同上,但可能更糟(目前尚不清楚 start() 是的)。

pool.apply(run, args=())
sleep(0.2)

apply 正在阻塞,因此这将向队列提交一个作业 等到工作完成 .

只有第一个版本才有机会利用这个池,因为提交后你要睡200毫秒,所以作业需要至少200毫秒才能并行。

你一点也不想解释什么 run 是的,你唯一要说的是他们正在读取文件,但即使是入门级SSD也有GB/s级带宽,所以你至少需要读取数百MBs的文件才能感觉到这种效果(如果你使用非常低效的读取方法,可能会更少)。

使用进程池的正确方法是 apply_async 在一个紧密的循环中,或者使用 map_async imap_unordered 将批量作业发送到池中,并让池在工人之间分配工作。

而且

不同的进程各自读取不同的文件

当然没有任何迹象或证据表明这一点,因为它们运行的都是相同的 没有参数的函数。

5 年前
回复了 Masklinn 创建的主题 » Python-函数的可选参数

其他人已经给出了你可以做到的方法,但在更基本的层面上,我会问为什么这甚至是相同的方法?在我看来,这里有两种不同的方法,fúsum和f(或其他),一个取两个参数,另一个取4。

或者如果这是一个更复杂的操作,而c和d只是附加的参数/属性,则可以将它们默认为空值,例如,对于加法,只需将它们默认为0:

def f(a, b, c=0, d=0)

a+b-0+0 如果不提供这些参数,则不会执行任何操作,结果将与a+b相同,甚至不需要条件或魔法标志。 很抱歉错过了第二个案子 - 把它误读为+

5 年前
回复了 Masklinn 创建的主题 » python中的replace函数给出了错误的结果

{
    'KOPL':'KOLPOL',
    'RWP':'KOLPOL',
    'MMP':'KOLPOL',
}

df['Final']