草庐IT

pthread_cond_signal

全部标签

c - 对于 pthread,如何从主线程中杀死子线程

我使用pthread_create创建多个子线程。有一次,主线程要杀掉所有的子线程,否则就会出现segmentfalut。我应该使用哪个功能来完成它?我从谷歌搜索了答案并获得了类似pthread_kill的功能。但是我不知道应该向子线程发送哪个信号来杀死它们。我的运行环境是RHEL5.4,编程语言是C。 最佳答案 一般来说,你并不是真的想暴力杀死一个子线程,而是想让它终止。这样你就可以确定child在一个安全的地方退出并且它的所有资源都被清理干净了。我通常使用父子之间的一小部分共享状态来执行此操作,以允许父子向每个子子传达“退出请求

c - pthread_detach 问题

直到最近,我的印象是,如果您在生成一个线程后“分离”它,该线程即使在“主”线程终止后仍然存在。但是一个小实验(下面列出)与我的信念相反。我希望分离线程即使在main终止后也能继续打印“从分离线程说话”,但这似乎没有发生。应用程序显然终止了...“分离”线程是否在“主要”问题返回0后死亡?#include#includevoid*func(void*data){while(1){printf("Speakingfromthedetachedthread...\n");sleep(5);}pthread_exit(NULL);}intmain(){pthread_thandle;if(!p

linux - pthread_self() 和 gettid() 有什么区别?我应该使用哪一个?

我正在尝试在Linux上设置线程的CPU关联。我想知道推荐使用以下哪一种方法:Getthreadidusingpthread_self()SetCPUaffinityusingpthread_setaffinity_np(....)bypassingthethreadidasanargumentGetthreadidusingthegettid()callSetCPUaffinityusingsched_setaffinity(....)bypassingthethreadidintheplaceoftheprocessidP.S:设置CPUaffinity后,我打算提高线程的调度优先

linux - PThread 库的源代码?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我正在寻找pthread库的源代码。(我猜它应该是Linux源代码的一部分)但不知何故找不到任何有它的好网站。我喜欢这个网站:http://lxr.linux.no/#linux+v2.6.34.1/我通常在哪里找到我需要的东西。不知何故pthread源是不可搜索的。不管怎样,我想提一下,我需要一个指向像那个网站那样的可浏览(和搜索)网站的链接。用于浏览Linux源代

PHP pthreads : Fatal error: Class 'Thread' not found

我在我的网络服务器上使用php5.5。现在我想使用pthreads。这是我的php配置:http://dd19010.kasserver.com/infophp.php55执行此代码后......threadId=$threadId;}publicfunctionrun(){printf("T%s:Sleeping3sec\n",$this->threadId);sleep(3);printf("T%s:HelloWorld\n",$this->threadId);}}$start=microtime(true);for($i=1;$istart();}echomicrotime(tr

Php:何时使用 pthread

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

android - SIGNAL 11 SIGSEGV 崩溃 Android

今天我遇到了一个错误,因为我的Android应用程序正在通过SIGNAL11。此错误通常是由于Android内部存储未经授权访问内存区域而发生的。一些可能的场景是Web访问、网络通信、服务器图像下载等。我的是浏览器加载url的情况!http://bootloader.wikidot.com/linux:android:crashlog我需要在扫描二维码后启动浏览器。应用程序一直在流畅地扫描和启动浏览器,但在尝试相同步骤15-20次后出现问题..我研究了很多,发现它发生在AndroidNative库中的MEMORYERROR..通常是当android内部存储系统尝试访问未知的内存区域时。

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 - 尝试录制音频但收到消息 "mediarecorder went away with unhandled events"和 "Fatal signal 11 (SIGSEGV)...."

我正在尝试在android中录制音频,但我遇到了问题。我有开始和停止按钮,“开始”用于开始录制,“停止”用于停止录制。问题是,当我按下停止按钮时,我的应用程序会记录一条消息“W/MediaRecorder(635):mediarecorderawaywithunhandledevents”。(启动功能正在正确保存音频文件。)然后,如果我再次按下开始或停止按钮,则会收到错误消息“A/libc(743):Fatalsignal11(SIGSEGV)at0x00000010(code=1),thread743(xample.recorder)”录音类代码如下:/***Createsanewa

Android 应用程序仅在 Eclipse 调试时因 SIGABRT Signal 6 而崩溃

我有一个应用程序可以在没有附加调试器的设备上完美运行。但是,我在Eclipse中调试时遇到了问题:当主线程挂起大约10秒或更长时间(例如遇到断点后),主线程抛出一个SIGABRT,显然来自libc。我能想到的唯一解释是,主线程上的消息队列在未被轮询时会溢出来自另一个线程的消息。但是,当主线程挂起时,我没有看到堆增长。此外,虽然我的应用在所有服务、内容提供者、广播接收器、http和map工作线程等之间有大约20个线程,但我真的想不出任何过多消息的来源。所以我的问题是:我该如何解决这个问题?我可以使用哪些工具以及如何查找导致我的应用在调试器中挂起时崩溃的原因?编辑1:logcat中唯一的就