pthreads

    3热度

    3回答

    我需要并行化一个简单的密码破解程序,以便在n处理器系统上使用它。我的想法是创建n个线程,并在他们完成时为他们提供越来越多的工作。 什么是知道线程何时完成的最佳方式?互斥体?在其他线程正在运行时不会经常检查此互斥锁吗?

    23热度

    13回答

    我有一个线程在后台运行,以阻塞方式从输入设备读取事件,现在当我退出应用程序时,我想正确清理线程,但是我不能只运行pthread_join(),因为该线程永远不会因阻塞IO而退出。 我该如何正确地解决这种情况?我应该发送一个pthread_kill(theard,SIGIO)还是一个pthread_kill(theard,SIGALRM)来打破这个块?这是否是正确的信号?或者有另一种方法来解决这种情

    6热度

    6回答

    我想实现的是服从它大致接口生产者/消费者方案: class Consumer { private: vector<char> read(size_t n) { // If the internal buffer has `n` elements, then dequeue them // Otherwise wait for more data and try

    1热度

    1回答

    在Windows(MSVC)中,以下POSIX定时读写器锁定等效于什么? pthread_rwlock_timedrdlock() pthread_rwlock_timedwrlock()

    1热度

    1回答

    我一直在阅读和研究这几天,现在我需要一些外部帮助! (与本网站似乎是一个不错的地方,所以我想我会 在这里发布我的问题,看看它是如何去) 我们的小公司还没有建立我们对AIX 应用了好几年,并且我已经分配了这个任务(好的 我喜欢挑战)。 我遇到的问题很容易描述,而且我可以看到 其他人也在遇到它,尽管我无法找到 找到答案。 如果我链接的应用“非静态的”,意思是我不使用在构建命令“-static” ,应用

    5热度

    6回答

    我有一个单一的HW接口我想从在同一工作站上的两个应用程序(过程)的使用。硬件需要一次初始化调用,然后两个应用程序使用同一个函数(在同一个库中)与HW进行许多事务。 因此,每个应用程序应该像这样: main() // I don't know if another app already init'ed the HW ret = hw_init_lock(non-blocking

    2热度

    1回答

    我实际上正在编写一个MPI程序。这是一个基本的客户端/服务器模式。服务器有一组计算工作。客户得到这个大集合的子集。每个客户使用多个线程来计算子集。在向服务器请求另一个子集之前,我必须确定所有线程都已完成。 客户端分为几个线程:一个主(用于通信)和几个工人。 在这里我的实际代码,应该发生死锁。我清理了任何MPI调用,以使其更具可读性。我真的不明白我在这里做错了什么。 void* worker (vo

    4热度

    1回答

    我在Windows应用程序中使用pthreads。我注意到我的程序处于死锁状态 - 一个快速检查显示发生了以下情况: 线程1产生线程2.线程2产生线程3.线程2在线程3的一个互斥量上等待,该线程并未解锁。 于是,我又在gdb调试,并得到回溯第三线程时,如下: Thread 3 (thread 3456.0x880): #0 0x7c8106e9 in KERNEL32!CreateThread(

    3热度

    2回答

    假设我有以下代码: while(TRUE) { pthread_t *thread = (pthread_t *) malloc(sizeof(pthread_t)); pthread_create(thread, NULL, someFunction, someArgument); pthread_detach(*thread); sleep(10);

    2热度

    5回答

    它看起来像做了一些工作,使pthread-win32与x64一起工作,但没有构建指令。我试图用Visual Studio x64 Cross Tools命令提示符来模拟构建,但是当我尝试从x64应用程序链接到lib时,它看不到任何函数导出。它似乎仍然将lib编译为x86或其他东西。 我甚至尝试在适当的位置添加/ MACHINE到makefile,但它没有帮助。有没有人得到这个工作?