rust - 无互斥体的人造丝并行迭代器的顺序依赖缓存
问题描述
我对需要处理一系列计算的数千个项目进行了计算,其中每个 n 迭代需要处理 [n - 1, n, n + 1] 的数据。最好在图表上理解这一点
迭代器内部的所有计算都是相同的,所以我们可以缓存它。但是用人造丝做的最好方法是什么?
我想根据线程级别缓存它。因此,如果我们有 4 个迭代的线程,我们可以为每个组(0 - n/4,n/4 - 2*n/4,..)提供缓存,但我们无法控制人造丝中的迭代顺序。
有没有更好的方法在没有互斥锁的人造丝中拥有每个线程或共享缓存?
重要说明:我不知道需要哪个迭代来进行计算。它在运行时确定,所以基本上我不能在迭代之前进行所有计算。
解决方案
推荐阅读
- android - 如果图像大于 Glide 中请求的大小,如何仅按比例缩小图像?
- xamarin - 如何在 SFSafariViewController Xamarin 中捕获交叉按钮操作
- arrays - 是否可以使用 Spring Boot 将嵌套的 Json 数组存储到数据库?
- c++ - 将在 C++ 中添加任何二维整数数组的所有元素的函数模板
- node.js - 如何在不改变实际数据库的情况下测试 Nodejs API?
- c# - Windows 终端服务器 - 内存不足,无法继续执行程序
- php - 遇到的php错误无法提取lang文件codeigniter3
- git - macOS Monterey 12.0.1 上的 git 版本 2.33.1 上的 Git 推送棒没有错误消息
- python - 应用程序错误 - 在 Heroku 上部署 Django 应用程序
- python - BeautifulSoup - xml - find_next:限制为一个属性