草庐IT

pthread_detach

全部标签

Php:何时使用 pthread

我对使用线程了解不多,但我研究了php的pthreads,它看起来非常有趣和简单,或者比我想象的更容易......我搜索了示例并查看了文档,但我找不到任何真实世界的示例说明何时使用线程实际上是有益的,它肯定适用于不依赖于彼此的长期任务,比如做很多http请求或发送邮件。但是呢写日志条目?插入数据库?(比如跟踪用户事件)从数据库中获取(我可以从线程返回数据吗?)这会提高性能还是创建线程的开销太大?(虽然我也可以使用工作池来减少开销,但我认为...)非常感谢任何建议或示例! 最佳答案 发行版中包含许多示例,可在github上找到:htt

android - 使用 Volley 进行异步发布时抛出 OutOfMemoryError "pthread_create (1040KB stack) failed: Try again"

我正在使用Volley将存储在本地数据库中的一些数据发布到服务器。问题是当我有大量条目(例如500)时,我会收到此错误:java.lang.OutOfMemoryError:pthread_create(1040KBstack)failed:Tryagainatjava.lang.Thread.nativeCreate(NativeMethod)atcom.android.volley.RequestQueue.start(RequestQueue.java:141)atcom.android.volley.toolbox.Volley.newRequestQueue(Volley.j

android - 何时使用 FragmentTransaction 的 attach 和 detach 方法

我刚刚浏览了FragmentTransaction的attach()和detach()方法的文档:attach():Re-attachafragmentafterithadpreviouslybeendetachedfromtheUIwithdetach(Fragment).Thiscausesitsviewhierarchytobere-created,attachedtotheUI,anddisplayed.嗯,这是什么意思?更具体地说,我看到了一个例子:mMapFragment=newMapFragment();ft.beginTransaction(mMapFragment).

c++ - 暂停和恢复 pthread 的最佳解决方案是什么?

我发现了以下关于pthread的主题(here),但有很多好的解决方案。我想知道下面这段代码是否有效,如果有效,为什么要使用同一个锁来调用pthread_cond_wait以及访问它然后立即解锁:voidsuspendMe(){pthread_mutex_lock(&m_SuspendMutex);pthread_cond_wait(&m_ResumeCond,&m_SuspendMutex);pthread_mutex_unlock(&m_SuspendMutex);}在这里使用2个单独的互斥锁不是更好吗,或者这是挂起pthread的正确方法??提前致谢!编辑:非常棒的回复,谢谢大家

c++ - 分离的 pthread 和内存泄漏

谁能解释一下为什么这个简单的代码会泄漏内存?我认为,由于pthread是在分离状态下创建的,因此它们的资源应该在终止后立即释放,但事实并非如此。我的环境是Qt5.2。#include#includevoid*threadFunc(void*arg){printf("#");pthread_exit(NULL);}intmain(){pthread_tthread;pthread_attr_tattr;while(1){printf("\nStartingthreads...\n");for(intidx=0;idx更新:我发现如果我在for循环内添加5毫秒的轻微延迟,泄漏会WAY变慢:

c++ - 在 C++ 中使用 pthreads 的一个非常简单的线程池

我正在尝试了解使用POSIXpthread的一些基础知识。我需要做的事情(最终)是使用线程池模型并行化一些计算。目前我想确保我对POSIXpthread模型的工作原理有一个非常基本的了解。所以我正在尝试创建最简单的线程池,该线程池足够通用,可以做我想做的事情。将有一些共享内存、一个输入队列和一个输出队列,并且会有互斥锁保护它们。我已经编写了一些代码,但valgrind的helmgrind工具不喜欢我所做的。我怀疑我缺少一些基本的东西。您对我的代码有见解吗?#include#include#include#include#include#include#include#include//

C++11 std::thread::detach 和访问共享数据

如果您在std::thread和主线程(或任何其他线程)之间有共享变量,即使您执行,您仍然可以访问这些共享变量吗?thread::detach()创建线程后立即方法? 最佳答案 是的!调用detach()后仍可访问全局、​​捕获和传入的变量.但是,如果您正在调用detach,很可能您希望从创建线程的函数中返回,从而允许线程对象超出范围。如果是这种情况,您必须注意该函数的任何本地变量都没有通过引用或指针传递给线程。您可以将detach()视为线程不需要创建线程本地的任何内容的声明。在以下示例中,一个线程在超出范围后继续访问起始线程堆栈

c++ - Linux 上的 PThreads 和多核 CPU

我正在编写一个使用线程来提高性能的简单应用程序。问题是,这个应用程序在Windows上运行良好,使用我的CPU的2个内核。但是当我在Linux上执行时,似乎只使用了1个核心。我不明白为什么会这样。这是我的代码,C++:#include#include#include#includevoid*function(void*){inti=0;for(i=0;iLinux上的输出:TimeSequential:50msTimeConcurrent:1610msWindows上的输出:TimeSequential:50msTimeConcurrent:30ms 最佳答

c++ - 在 C++ 中使用 pthread

我在*.cc文件中使用pthread.h。当我尝试使用pthread_exit(0);或pthread_join(mythrds[yy],NULL);它说:.cc:(.text+0x3e):undefinedreferenceto`pthread_exit'当使用gcc在*.c文件中编译非常相似的代码时,它可以完美运行。如何在c++中使用pthread..(我还添加了-lpthread)..void*myThreads(void*ptr){...pthread_exit(0);}..标志:g++-lpthread-Wall-static-W-O9-funroll-all-loops-f

c++ - 未定义对 `pthread_mutex_trylock' 的引用

我有以下测试程序。#include#includeusingnamespacestd;pthread_mutex_tmymutex=PTHREAD_MUTEX_INITIALIZER;intmain(intargc,char*argv[]){intiret;iret=pthread_mutex_trylock(&mymutex);cout如果我在不添加pthread库的情况下编译它,我会收到pthread_mutex_trylock未解决错误的错误,但仅适用于函数pthread_mutex_trylock。如果我将pthread_mutex_trylock替换为pthread_mute