我正在尝试使用 python3 的多处理库的工作池来加速 CPU 密集型任务。我注意到,无论我的池中有多少工作人员,我总是会收到以下错误:
BrokenPipeError:[Errno 32] 管道损坏
导致此错误的代码如下:
def save_result(rincL):
#Save results here
if __name__ == '__main__':
p = Pool(8)
allProcesses = []
for i in range(60):
rincL = RINC_L(2, X_train, y_train[:,i].ravel(), X_test, y_test[:,i].ravel(), 6, i)
allProcesses.append(p.apply_async(rincL.RINC_N, [0]))
#Moved the two following lines based on suggestions in the comment
#Still getting the same error.
#p.close()
#p.join()
for process in allProcesses:
save_result(process.get())
time.sleep(1)
p.close()
p.join()
Run Code Online (Sandbox Code Playgroud)
python cpu multiprocessing python-3.x python-multiprocessing
我正在尝试使用protobuf生成的代码来解码来自网络的消息。我有一个.proto文件,看起来像这样:
syntax = "proto3";
message CanData {
string id = 1; // name
Data data1 = 2;
Data data2 = 3;
}
message Data {
oneof data1 {
int32 int_type = 2; // Magic and other int types
float float_type = 3; // Timestamp and other float types
uint32 unsigned_type = 4; // unsigned types
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用protoc命令生成代码时。它成功地工作。但是然后我打开了android项目,它没有按预期工作。我在以下行中看到错误:
Error:(11, 26) error: cannot find symbol class ExtensionRegistry
Error:(1719, 43) error: package com.google.protobuf.GeneratedMessageV3 does not exist
Error:(1716, 55) error: package com.google.protobuf.Descriptors does …Run Code Online (Sandbox Code Playgroud) android protocol-buffers android-ndk build.gradle gradle-plugin