cost 4036 ms
管道和线程在完成前退出的程序

[英]Program with pipes and threads exiting before completion

我正在编写一个带有线程和管道的 c++ 程序。 我正在实现一个并行化算法,我的想法是我有一个将数据写入子线程的主线程。 子线程必须读取这些数据,进行处理,并将结果写回主线程。 我已经剥离了通信核心逻辑的最小复制、编译版本,并注释掉了我有更多代码的地方。 该程序运行并退出而无需输入 complete。 ...

如何将 C++ 中的 pthreads 库与函数式 lambda 一起使用?

[英]How to use the pthreads library in C++ with functional lambdas?

我想将 C++ 中的 pthreads 库与 C++ lambda 一起使用。 我的 lambda 是std::function<void(X)>类型,其中 X 可以是任何类型,例如int 、 double 、 float或自定义类型。 此外,lambda 可能接受多个参数。 例如,我 ...

基于 Pthreads 的程序在 MacOS 上崩溃不会在 Linux 上崩溃

[英]Pthreads based program crashing on MacOS doesn't crash on Linux

我有一个基于 pthreads 的程序,它有 3 个线程,几秒钟内在 MacOS(Darwin Kernel 版本 19.6.0)上崩溃。 我期待在 Linux 上有相同的行为。但程序不会在 Linux 上崩溃。我只能猜测 Linux 是否具有不同的线程调度策略或者它是否是其他东西。 任何指针表示赞 ...

2023-01-26 00:01:28   1   42    pthreads  
与cpp中的posix线程混淆

[英]Confusion with posix threads in cpp

我真的很困惑这个特定的代码。 AFAIK,这个程序不应该有竞争条件,但它有。 真正令人困惑的是删除循环并仅复制代码就可以正常工作。 注意:我在循环中看到了一个关于线程的问题,但它并没有真正捕捉到我试图强加的内容。 这里是 构建如下 我期望计数器变量每个线程递增一次,但有时没有打印其他时间计数器变量 ...

如果 pthread API 在 libc 中,是否需要 libpthread

[英]Is libpthread needed if the pthread API is in libc

查看我的 Ubuntu 22.04 框中的readelf -s /lib/x86_64-linux-gnu/libc.so.6的 output,我看到(看起来是) .text部分中包含的整个 pthread API。 作为完整性检查,我成功编译并运行了#include <stdio.h&gt ...

线程阻塞代码 c++ 的 main()

[英]thread is block the main() of the code c++

我正在尝试为 wait() 方法实现线程,这样它就不会阻塞 main() 线程。 在主线程中,wait() function 必须每小时运行一次验证 function。 因此, main() 线程在 wait() function 运行时被阻塞,并且不会继续执行任何代码,直到 wait() fun ...

C 中的问题,在 pthread 中的 epoll_wait 之后读取

[英]issue in C with read after epoll_wait in a pthread

我正在为嵌入式 ARM 系统开发 C 中的 MQTT 客户端应用程序,该系统必须基于 GPIO 更改发送消息。 为此,我尝试启动一个执行epoll_wait的pthread并read /sys/class/gpio/gpio<x>/value以获取更改值。 第一步是将 gpio 配置为输 ...

c++ 中的 boost 库链接问题

[英]Issue with boost library linking in c++

实施基于时间的事件“验证”时出现问题,例如等待方法在 1 小时后获取当前时间和时间并休眠 1 小时,然后调用此验证 function。 但是当我运行这段代码时它显示错误升压库版本是:1.71 在 main.cpp 中,我试图使两个触摸文件和时钟同步,然后实现 get_latest_clock_ent ...

如果在 wrlock 之前调用 unlock,则 pthread wrlock 方法会阻塞

[英]pthread wrlock method blocks if unlock is called before wrlock

我正在使用 Ubuntu 20.04 并遇到了一个奇怪的问题。 在我的代码中,如果在初始化 pthread_rwlock_t object 之后有任何机会在同一线程中的pthread_rwlock_wrlock之前调用pthread_rwlock_unlock function,则执行块。 这是重现 ...

2023-01-18 11:17:38   1   28    c++ / pthreads  
如何使用 pthread 实现动态增长堆栈?

[英]How to implement a dynamic–grow stack with pthread?

从APUE,我了解了栈的guardsize和stackaddr 。 如果rsp指针将低于stackaddr ,则rsp进入guard stack area ,并发出信号通知程序。 我想知道是否可以使用此功能实现动态增长(动态增长)堆栈。 你能告诉我怎么做吗? ...

g++ 和 gcc 在 pthread_cleanup_push/pop 上的行为不同

[英]g++ and gcc behave differently on pthread_cleanup_push/pop

这是我的代码 现在我使用gcc和g++运行它 为什么他们的行为不同? 还有其他功能是这样的吗? 我发现gcc和g++的实现是不同的。 那么哪个是更好的实现呢? ...

C中访问一个队列时分任务给N个线程

[英]Dividing task to N threads in accessing a queue in C

您如何为N个线程委派任务以使工作负载均匀分布? 假设我们有一个队列[the] -> [quick] -> [brown] -> [fox] -> [jumps] -> [over] -> [the] -> [lazy] -> [dog] 我们有N个线程 ...

包含时 pthread 库“未解析的符号”(C++ 14、VS 22)

[英]pthread library "unresolved symbol" when including (C++ 14, VS 22)

我一直在尝试在我的 C++ 项目中包含和使用pthreads库。 我将 Visual Studio 2022 Community Edition 与 C++ 14 一起使用,并且正在以 x64 配置构建我的项目。 我通过 NuGet Package Manager 安装了 pthread 库,我有 ...

2023-01-10 09:55:27   1   47    c++ / pthreads  
忍不住用 OpenMP 来划分线程工作,用一个线程执行一个指令,用其余线程执行一个并行指令

[英]Can't help dividing thread work with OpenMP, doing one instruction with a single thread and a parallel for with the remaining

我发布了我的代码的当前版本,就是这个 并且已经很好地工作了,但是我想看看是否可以通过执行以下操作来改善时间,让一个线程在omp single pragma 下执行操作,而另一个在没有他帮助的情况下执行下面的操作。 因此,如果有 8 个线程,则 1 个将执行single部分,而 7 个将执行另一部分。 ...

用虚拟成员启动线程 function C++

[英]Start thread with virtual member function C++

我有 Base class 和 2 个从 Base class 继承的其他类。我想创建一个线程,可以在 Derived_* class 中运行覆盖 function。可以选择 function 的哪个版本。 当我在示例代码中创建线程时编译错误。 我应该怎么办? 更新:正如评论中所指出的,我无法将 ...

2023-01-09 08:00:20   1   63    c++ / pthreads  
有什么方法可以确定一个(多)线程/任务的堆栈地址在 Linux 上的进程的虚拟 memory 中开始?

[英]Is there any way to determine a (multi) thread/task's stack address start in the virtual memory of a process on Linux?

我知道一个人可能会使用多个不同的线程库,但对于这个问题,我特别考虑了 POSIX pthreads。 找出“进程/主任务/主线程/线程组负责人”的堆栈位置我认为并不难。 查看/proc/文件系统,可以猜测这些东西用于特定任务的位置。 我想做的是找出pthread为新创建的线程放置堆栈的位置,是否有 ...

停止处于睡眠状态的 pthread

[英]Stopping a pthread which is in sleep

我有一个线程(这是 C 实现中的一个 Pthread)每 5 秒从文件中读取一个值。 在关闭期间,这会导致关闭进程想要删除线程但由于它正在休眠,它必须等待 5 秒才能完成休眠然后删除的问题。 我如何在收到关闭信号后立即停止线程,即使它处于睡眠状态? 我已经有一个条件变量,其中线程仅在条件为真时才休 ...

valgrind 中的 pthread_create memory 泄漏

[英]pthread_create memory leak in valgrind

这是我的代码的一个更简单的版本: 当我在这个程序上使用 valgrind 时,它说可能丢失:1 个块中的 272 个字节问题是,它并不是每次我运行它时都这么说。 有时它说没有泄漏。 因此,我相信没有泄漏,并且该消息与主线程退出后仍在运行的线程有关。 pthread_exit 调用不是应该让主线程等 ...

为什么我的 pthreads 程序比顺序程序花费的时间更长

[英]Why is my program with pthreads taking longer than the sequential one

我对多线程编程比较陌生。 我编写了一个程序,计算 0 - 10000 的平方并将它们保存到一个数组中。 顺序程序比并行程序运行得快得多。 在我的并行程序中,我将循环分成了 8 个线程(我的机器有 8 个内核)但是它慢得多吗? 任何人都知道为什么会这样。 我添加了执行时间的屏幕截图。 ...

如何手动调用由 `pthread_atfork()` 注册的 fork 处理程序?

[英]How to call manually fork handlers registered by `pthread_atfork()`?

我在 glibc 中使用vfork()并根据vfork()的手册页: 当使用 NPTL 线程库的多线程程序调用 vfork() 时,不会调用使用 pthread_atfork(3) 建立的分叉处理程序。 在这种情况下,在使用 LinuxThreads 线程库的程序中调用分叉处理程序。 在 NPTL ...


 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM