jjzjj

pThreads

全部标签

我可以让 Unix 的 pthread.h 在 Windows 中编译吗?

如果我尝试编译一个程序#include在其中,我得到了错误:pthread.h:Nosuchfileordirectory是否可以在Windows环境中进行编译?我正在使用带有最新MinGW的Vista。我不想使用适用于UNIX3.5版的MicrosoftWindows服务,因为我必须将其移动到Unix环境。 最佳答案 pthread.h是用于线程的Unix/Linux(POSIX)API的header。诸如Cygwin之类的POSIX层可能会使用#include编译应用程序.nativeWindows线程API通过#include

PHP + PThreads + Redis/Predis = zend_mm_heap 已损坏?

这几天我一直在为一个神秘的错误而苦苦挣扎。我使用的是PHP7.1.0RC3(我在启用ZTS/pthreads的情况下重新编译了自己)。最近,我一直在进行重构,用Redis替换MySQL以优化我的应用程序中非磁盘值(value)的数据I/O。我有一个脚本可以为每个加密货币市场创建一个线程(A)。线程(A)为每个交易策略创建另一个线程(B)。B线程总是在A线程之前同步。我不断收到此错误:zend_mm_heap已损坏。每次我运行脚本时,它都会在不同的执行点发生。我已经尝试了所有建议的修复、100多个Google页面。垃圾收集、PHP配置/编译,所有这些都经过了非常详细的审查。我没有发现任何

PHP Pthreads - 使用 mysqli

我第一次尝试在我的Web应用程序中使用pthreads。我有pthreads为简单的测试用例工作,但是我无法让pthreads中的mysql查询工作。这是我的php文件:classSqlThreadextendsThread{private$dbc;public$log;public$return;publicfunction__construct(){$this->dbc=mysqli_connect("localhost","root","rootpassword","my_database");$this->log="(".__LINE__.")constructfinished

php - PHP : Gearman vs. pthreads 中的异步数据库/服务调用

在我们的LAMP站点上,我们遇到了一些服务必须多次调用数据库以提取数据的问题。通常这是在PHP中完成的方式(至少我的经验)是串行的;这显然是低效的。我们可以通过使用缓存和聚合一些查询来减轻一些低效率;但在某些情况下,我们仍然需要进行多次数据库调用。理想情况下,我会同时向数据库或Web服务异步发送尽可能多的请求,但PHP似乎不支持开箱即用的模式。这些是我所知道的解决方法。我们目前使用Gearman来处理异步任务。我可以将我们的一些服务重写为Gearman任务,并使用它来对数据库和服务进行异步调用。然而,我们有过Gearman占用大量进程和内存的糟糕经历;在某些情况下强制使用重新启动我们的

ios - EXC_RESOURCE 崩溃并不总是显示在 iOS 8 上,有很多线程唤醒?

根据AppshutdownwithEXC_RESOURCE,WAKEUPSexceptiononiOS8GM和HowdoIwakeupasleepingpthread,我写了两个线程,一个唤醒另一个:staticvoid*thread1(void*){structtimevalnow;structtimezonetz;staticint64_tcount=0;while(gRun){pthread_mutex_lock(&mutex);pthread_cond_wait(&cond,&mutex);gettimeofday(&now,&tz);printf("thread1wakesu

ios - 函数 'pthread_mutex_init' 的隐式声明在 C99 中无效

我正在尝试使用本文here中的互斥锁锁定方法它声明创建一个类的成员变量pthread_mutex_tmutex;然后这样初始化pthread_mutex_init(&mutex,NULL);然后就这样使用它voidMyLockingFunction(){pthread_mutex_lock(&mutex);//Dowork.pthread_mutex_unlock(&mutex);}我在第2步初始化时收到以下警告。Implicitdeclarationoffunction'pthread_mutex_init'isinvalidinC99这是什么意思?我应该忽略它吗?

multithreading - 使用 C++ 在服务器上同时收听 UDP 和 TCP

我正在尝试编写一个套接字和客户端程序,这样服务器应该同时监听两个连接。例如,当我启动服务器时,它会监听UDP端口和TCP端口,每当UDP客户端发送消息时,它必须处理它,而当TCP客户端发送消息时,它必须处理它。我尝试使用pthreads但无法实现我想要的。这里是C++代码的细节以下函数将由各自的pthreads调用void*TCP(void*ptr){chartcp[MAXDATASIZE];cout>tcp;ServertcpServer(tcp,1);tcpServer.testbind(1);pthread_exit(NULL);}void*UDP(void*ptr){charu

c - 奇怪的多线程行为

这个问题在这里已经有了答案:Whenthemainthreadexits,dootherthreadsalsoexit?(3个答案)关闭5年前。我正在编写一个程序,该程序将创建到给定IP地址的多个TCP连接。现在,程序所要做的就是连接。这是我第一次在C中做多线程的事情,我遇到了一些我无法理解的行为。如果我在connection_handler函数的任何一行设置断点,它似乎只被调用一次,无论num_clients是什么。此外,似乎并非connection_handler中的所有代码都得到执行。structclient_data{intid;in_addr_tip;intport;};in

Linux线程:创建(pthread_create),等待(pthread_join),退出(pthread_exit)

目录一线程说明①线程与进程:②线程优点:③线程缺点:二线程开发API概要三线程控制流程①线程创建(pthread_create)②线程退出(pthread_exit)③线程等待(pthread_join)④线程脱离(pthread_detach)⑤线程ID获取(pthread_self)四完整代码示例一线程说明Linux实现线程的机制非常独特。从内核的角度来说,它并没有线程这个概念。Linux把所有的线程都当做进程来实现。内核并没有准备特别的调度算法或是定义特别的数据结构来表示线程。线程只被视为一个与其他进程共享某些资源的轻量级进程。所以在内核中,它看起来就像是一个普通的进程(只是线程和其他一

c - 线程服务器,在客户端之间发送消息

我正在编写一个C网络服务器,它将两个客户端配对在一起并允许它们相互发送消息。目前,每个客户端在服务器中都有自己的线程,在线程中我有一个循环,基本上是while((numBytesRead=read(fd,buffer,1024))>0)。这工作正常,我能够接收消息,然后将它们回显给客户端。我的问题是我不确定通过服务器将消息从一个客户端传输到另一个客户端的最佳方式。我认为我最大的问题是read()阻塞,所以我无法向客户端发送消息,直到客户端向服务器发送一些文本以便读取停止阻塞.有什么办法解决这个问题吗?我最初的想法是创建一个线程用于从客户端读取,一个线程用于写入客户端,但如果读取在一个线