- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面的程序,崩溃了
libc++abi.dylib: terminating with uncaught exception of type stxxl::io_error: Error in virtual void stxxl::ufs_file_base::lock() : fcntl(,F_SETLK,) path=/var/tmp/stxxl fd=5 : Resource temporarily unavailable: unspecified iostream_category error
Abort trap: 6
这看起来很像我的两个线程正在尝试使用相同的文件处理程序/文件来更新 stxxl 文件直到/var/tmp。
在 stxxl 中有多个线程使用多个文件的技巧吗?
#include <stxxl/queue>
#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>
void test() {
typedef stxxl::queue<unsigned int> queue;
queue my_queue;
for(unsigned long long i = 0; i != 1024L * 1024 * 1024; i++)
my_queue.push(10);
std::cout << "queue_size " << my_queue.size() << std::endl;
while(my_queue.size() != 0)
my_queue.pop();
std::cout << "queue_size " << my_queue.size() << std::endl;
}
int main()
{
pid_t pid;
pid_t cpid;
int status;
pid = fork();
if (pid == 0)
{
test();
exit(0);
} else
{
test();
if ((cpid=wait(&status)) == pid){
std::cout << "Child " << pid << " returned" << std::endl;
}
}
return 0;
}
最佳答案
对于 STXXL 1.4.0,您还可以在 .stxxl 配置文件中使用“###”。打开文件时,“###”将替换为当前 pid。
请注意,调用第一个 STXXL 函数时会自动打开磁盘文件。因此,必须将此类调用延迟到 fork() 之后,就像您在示例中所做的那样。
关于c++ - 在多线程中使用 stxxl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222783/
下面的程序,崩溃了 libc++abi.dylib: terminating with uncaught exception of type stxxl::io_error: Error in vir
我想创建一个外部存储器二进制搜索树数据结构,其数据位于使用 stxxl 作为库的外部存储器中。 为此,STXXL 中的哪种数据类型适合用作树中的节点。如果我们使用 stxxl:Vector 作为树的节
我正在开发一个使用 STXXL 的项目,据我所知,它是 C++ STL 库的非核心版本。目前,我的程序运行良好,但我现在面临的问题是,当程序运行时,它使用接近 2GB 的内存(具有中小型数据集)。 在
我正在尝试对包含大约十亿条记录(每条记录包含四个整数)的大文件进行排序。文件的大小将超过 50GB。 我正在用 4 亿条记录(大约 6 GB 文件)测试我的代码。我的磁盘配置如下所示: disk=/v
我有一个需要内置排序的应用程序,我希望用 STXXL 提供的排序替换现有的排序机制。我已经使用 STXXL 成功地测试了它,但我的问题是,虽然特定的排序运行需要对固定长度的字符串进行操作,但长度是在运
我正在尝试使用 STXXL 构建一个大型矩阵,并能够对该矩阵执行多种不同的操作。目前,我正在使用 stxxl::vector 作为存储大矩阵子矩阵的一种方式。我想要做的是规范化矩阵的每一列。所以我唯一
STXXL支持数据处理的流模型。 STXXL 数据可以通过迭代处理(例如使用 stxxl::for_each),或转换为流模式(例如使用 streamify(),其中此类流转换可以组合以进行高效处理。
我需要将大量元素附加到 stxxl vector 中。向 stxxl vector 添加元素的最有效方法是什么?现在,我正在使用 stxxl vector 的 push_back,但它似乎效率不高。它
在stxxl常见问题解答,我发现了这个: Parameterizing STXXL Containers STXXL container types like stxxl::vector can be
以下最小示例说明了在并行初始化容器(使用 openMP)时 stxxl 的行为: #include #include #include typedef stxxl::VECTOR_GENERAT
我似乎无法使用 CMake 2.8.12.1 为 STXXL 构建解决方案。我查看了所有文章并按照他们的说明进行操作,但没有运气。我有带有 SP1 和 Windows 7 的 VS2010 Profe
此处提供类似问题:How do I sort a vector of pairs based on the second element of the pair?但我对外部存储器排序很感兴趣。 我尝试
我正在搜索一个为 Java 中的大型数据集设计的集合框架,它的行为是透明的,比如 STXXL为 C++ 做。 它应该透明地交换到磁盘,但比普通的基于操作系统的 VM 交换更有效。 StringBuff
如何让 qmake 将 stxxl.mk 文件包含到生成的 makefile 中? 我有一个 Qt 项目,它处理大文件 (>RAM),因此想使用 STXXL。 STXXL documentation说
我试图将 STXXL 库安装到 this 之后的自定义路径中以这种方式回答向 cmake 提供前缀: cmake -DCMAKE_INSTALL_PREFIX=/usr 。 && 全部安装 当我运行测
我需要优化 stxxl vector 的 block 大小 BlkSize_ 参数,以便使用简单的网格搜索进行部分和查找。由于为 stxxl vector 指定它的唯一方法似乎是将它用作 vector
我有以下代码,这是一个非常简单的测试,但 VS 拒绝运行它: stxxl::syscall_file OutputFile("Data/test.bin", stxxl::file::RDWR | s
我正在使用 STXXL,有人可以帮我找到编号吗?由我的程序(或算法或进程)完成的 I/O(或 block 传输)?我知道如何限制任何特定进程的内存使用,但不知道如何限制 STXXL 中的 block
这是 Vector of pairs with generic vector and pair type, template of template 的后续. 我希望能够调用带有 std::vecto
我的代码似乎可以工作(由于上述错误,我还没有在大型数据集上尝试过)。 代码: #include #include #include int main() { //queue q; //th
我是一名优秀的程序员,十分优秀!