我需要知道是否有办法为一组bool列表共享内存:
s = Array( 'x' , range(10000000))
我需要编写什么来代替x来使它成为一个大小为64的列表数组。然后我必须在两个不同的进程中操作“s”:
#First
for i in range(0,photoCount):
db.newDBS.insert_one({ 'photo' : s[i], 'user_id' : ids[i] })
#Second
s[photoCount].append = inPhoto
应该是什么类型?任何帮助或建议表示赞赏。谢谢!
答案 0 :(得分:2)
Python Array
模块允许两种类型的共享变量:Value
,它是单个dtype的简单1D数组,multiprocessing.Array
,它只是一个单独的值。
如果您在C中知道自己的方式,可以使用ctype设计自己的共享变量:请参阅documentation here.
如果你只需要一个2D数组并且你不想使用ctype共享对象,也许你可以在一个列表中展平你的数组并使用import java.io.IOException;
import com.dropbox.core.DbxException;
import com.dropbox.core.DbxRequestConfig;
import com.dropbox.core.v2.DbxClientV2;
import com.dropbox.core.v2.files.ListFolderResult;
import com.dropbox.core.v2.files.Metadata;
public class Main {
private static final String ACCESS_TOKEN = "xxxx-xxxx-xxxx";
public static void main(String args[]) throws DbxException, IOException {
DbxRequestConfig config = new DbxRequestConfig("");
DbxClientV2 client = new DbxClientV2(config, ACCESS_TOKEN);
try {
ListFolderResult result = client.files().listFolder("");
while (true) {
for (Metadata metadata : result.getEntries()) {
System.out.println(metadata.getPathLower());
}
if (!result.getHasMore()) {
break;
}
result = client.files().listFolderContinue(result.getCursor());
}
} catch (Exception er) {
er.printStackTrace();
}
}
}
代替?然后只需在处理完成后重新塑造。