Articles of multithreading

如何find一个pthread是否有挂起的取消请求

我想find一个线程, pthread_cancel是否被调用。 我不想使用一些表格,并保持这一点。 有没有可用的库函数? 我不想取消线程使用一些取消点function取消线程,如果有任何挂起的取消请求,我只是想知道是否有任何挂起的取消请求。

在pthread程序中,例程的额外执行时间是多less?

我写了四个不同的程序来计算两个文件中的总字数。 这四个版本看起来大致相同。 前三个版本使用两个线程来计数,只是三个语句的顺序不同。 最后一个版本使用一个线程来计数。 我会先列出每个版本的不同部分和通用部分,然后列出每个版本的输出和我的问题。 不同的部分: // version 1 count_words(&file1); pthread_create(&new_thread, NULL, count_words, &file2); pthread_join(new_thread, NULL); // version 2 pthread_create(&new_thread, NULL, count_words, &file2); count_words(&file1); pthread_join(new_thread, NULL); // version 3 pthread_create(&new_thread, NULL, count_words, &file2); pthread_join(new_thread, NULL); count_words(&file1); // version 4 count_words(&file1); count_words(&file2); 通用部分:( 将不同的部分插入到这个通用部分来制作一个完整的版本 ) #include <stdio.h> #include <pthread.h> #include <ctype.h> #include <stdlib.h> #include <time.h> #define […]

我应该在Linux上使用哪个线程库用于multithreadingC程序?

我已经完成了Java中的线程,但我是一个完全noob线程C.我的第一个问题,谷歌search后,是:我使用哪个线程库? 有关系吗? 看来我有thread.h和pthread.h可供select。 操作系统是,而且将会是Linux。 更具体地说,目前它是Ubuntu,将保持这样的状态,或成为RHEL。 但是我猜这个发行版并不重要?

multithreading应用程序的核心转储只显示一个线程

我在c ++中有一个testing应用程序,在其main()启动几个线程,然后永远睡在main() 。 其中一个线程正在做一些导致段错误的事情,并且生成一个coredump(之前设置了ulimit -c unlimited)。 我用gdb打开核心,并看到与thread apply all bt或info threads ,我只有一个线程(在main()开始),这是不可能的,因为至lessmain()线程也应该运行。 问题是如何可能的剩下的线程被遗漏,并可能导致它? 这个寂寞的线程的回溯似乎没问题,没有什么奇怪的东西。 操作系统是Red Hat Enterprise 5.3,gdb-6.8。

Python线程与Linux中的多处理

基于这个问题,我认为创build新进程应该和在Linux中创build新线程 一样快 。 但是,一点testing显示非常不同的结果。 这是我的代码: from multiprocessing import Process, Pool from threading import Thread times = 1000 def inc(a): b = 1 return a + b def processes(): for i in xrange(times): p = Process(target=inc, args=(i, )) p.start() p.join() def threads(): for i in xrange(times): t = Thread(target=inc, args=(i, )) t.start() t.join() testing: >>> timeit […]

孩子过程怎么样?

父进程突然终止而不等待的subprocess会发生什么? 孩子的过程是否也死了?

限制JVM使用的线程数

如何设置限制某人可以创build的线程数量? 我所做的就是运行某人的代码(类似于ideone),并且想要限制他可以产生的线程数量。 怎么做? 一些jvm设置或别的东西? 编辑我添加更多的指定信息,因为有些人没有得到我的观点。 一些随机的人给我一个我的电脑将要执行的代码 代码必须在最多k个线程内执行 所有的都必须是自动化的 – 像SPOJ,ideone等一样工作

sprintf线程安全吗?

sprintf线程安全吗? //Global log buffer char logBuffer[20]; logStatus (char * status, int length) { snprintf(logBuffer, 19, status); printf ("%s\n", logBuffer); } 这个函数的线程安全性完全取决于snprintf / sprintf的线程安全性。 更新:谢谢你的答案。 我不介意,如果实际内容gts搞砸了。 但是想确认在这种情况下,当多个线程试图写入logBuffer时,sprintf不会导致内存损坏/缓冲区溢出超过20字节?

检查当前线程是否是主线程

我如何检查当前线程是否是Linux上的主线程? 它看起来像gettid()只返回一个PID,但似乎Linux不保证与main()的线程总是有一个常量和统一的PID。 原因是我有一个自动并行化进行,我想确保pthread_create()不在一个已经在pthread_create()创build的线程上运行的函数中调用。

Matlab 2011a使用64位Linux上的所有内核?

嗨,我在网上看了,但我似乎无法find答案是否需要做任何事情,使matlab使用所有内核? 据我所知,自2007年以来,multithreading已得到支持。在我的机器上,matlab仅使用一个@ 100%的内核,其余的占用2%。 我正在使用64位Linux(Mint 12)。 在我的另一台只有2个核心,32位的计算机似乎正在利用两个核@ 100%。 不是所有的时间,但在足够的情况下。 在64位,4核心电脑这从来没有发生。 我必须在64位做任何事情,让Matlab尽可能使用所有的核心? 在安装之后,我不得不做一些自定义链接,因为Matlab没有find库(例如libc.so.6),因为它没有在正确的位置查找。