草庐IT

pthread_create

全部标签

c - pthreads:以编程方式收集有关在不同状态下花费的时间的信息?

在C语言中,Linux3.2:有没有办法以编程方式收集有关某些程序上每个pthread创建线程的状态的统计信息?例如,我想获取每个线程在运行和空闲状态下花费的时间。 最佳答案 clock_gettime()可以返回线程特定的CPU时间。简单地做:structtimespects;clock_gettime(CLOCK_THREAD_CPUTIME_ID,&ts);但据我了解,这是该线程的用户时间和系统时间的总和。您还应该考虑手册页末尾有关SMP系统的警告消息。此外,如果您不想要当前线程的计时信息,而是在某些pthread上,您可以使

c - pthreads:以编程方式收集有关在不同状态下花费的时间的信息?

在C语言中,Linux3.2:有没有办法以编程方式收集有关某些程序上每个pthread创建线程的状态的统计信息?例如,我想获取每个线程在运行和空闲状态下花费的时间。 最佳答案 clock_gettime()可以返回线程特定的CPU时间。简单地做:structtimespects;clock_gettime(CLOCK_THREAD_CPUTIME_ID,&ts);但据我了解,这是该线程的用户时间和系统时间的总和。您还应该考虑手册页末尾有关SMP系统的警告消息。此外,如果您不想要当前线程的计时信息,而是在某些pthread上,您可以使

linux - 了解涉及 pthread 时的 Linux 调度

通过另一个问题的讨论,参见Debuggingstrangeerrorthatdependsontheselectedscheduler,我遇到了一些关于线程调度的问题。我在Linux2.6.x上,以root权限运行并使用pthreads在用C/C++编写的时间关键应用程序中执行并行操作。我将尝试给出一些简短的、概括的片段来解释我的问题:在mainI开头的某处做:structsched_paramsp;memset(&sp,0,sizeof(sched_param));sp.sched_priority=99;sched_setscheduler(getpid(),SCHED_RR,&s

linux - 了解涉及 pthread 时的 Linux 调度

通过另一个问题的讨论,参见Debuggingstrangeerrorthatdependsontheselectedscheduler,我遇到了一些关于线程调度的问题。我在Linux2.6.x上,以root权限运行并使用pthreads在用C/C++编写的时间关键应用程序中执行并行操作。我将尝试给出一些简短的、概括的片段来解释我的问题:在mainI开头的某处做:structsched_paramsp;memset(&sp,0,sizeof(sched_param));sp.sched_priority=99;sched_setscheduler(getpid(),SCHED_RR,&s

linux - sysfs_create_file() 和 sysfs_create_group() 有什么区别?

两个函数的原型(prototype):intsysfs_create_group(structkobject*kobj,conststructattribute_group*grp)intsysfs_create_file(structkobject*kobj,conststructattribute*attr)在我看来,这两个函数都会在sysfs的kobj->name目录下创建属性。我能找到的唯一区别是,groupfunc可以一次创建一组属性,而filefunc只有一个属性。那么还有其他的区别吗?还是我对功能的理解有误? 最佳答案

linux - sysfs_create_file() 和 sysfs_create_group() 有什么区别?

两个函数的原型(prototype):intsysfs_create_group(structkobject*kobj,conststructattribute_group*grp)intsysfs_create_file(structkobject*kobj,conststructattribute*attr)在我看来,这两个函数都会在sysfs的kobj->name目录下创建属性。我能找到的唯一区别是,groupfunc可以一次创建一组属性,而filefunc只有一个属性。那么还有其他的区别吗?还是我对功能的理解有误? 最佳答案

c++ - pthread_rwlock 可以同时拥有多少个读者?

我有一个多线程应用程序,它创建了48个线程,它们都需要访问一个公共(public)属性(STL::map)。map只会在线程启动时写入,其余时间将从中读取map。这似乎是pthread_rw_lock的完美用例,而且一切似乎都运行良好。我遇到了一个完全不相关的段错误并开始分析内核。使用gdb,我执行了命令infothreads并且对结果感到非常惊讶。我观察到有几个线程实际上正在按预期从映射中读取,但奇怪的是,有几个线程在等待rw_lock的pthread_rwlock_rdlock()中被阻塞。这是等待锁的线程的堆栈跟踪:#00xffffe430in__kernel_vsyscall(

c++ - pthread_rwlock 可以同时拥有多少个读者?

我有一个多线程应用程序,它创建了48个线程,它们都需要访问一个公共(public)属性(STL::map)。map只会在线程启动时写入,其余时间将从中读取map。这似乎是pthread_rw_lock的完美用例,而且一切似乎都运行良好。我遇到了一个完全不相关的段错误并开始分析内核。使用gdb,我执行了命令infothreads并且对结果感到非常惊讶。我观察到有几个线程实际上正在按预期从映射中读取,但奇怪的是,有几个线程在等待rw_lock的pthread_rwlock_rdlock()中被阻塞。这是等待锁的线程的堆栈跟踪:#00xffffe430in__kernel_vsyscall(

java - Java JVM 是否使用 pthread?

MacOSX上的JVM是否使用pthread创建线程?在Linux发行版上,现在是否默认为所有发行版上的JVM创建线程? 最佳答案 是的,HotSpotJVM(即OracleJDK和OpenJDK)在Linux上使用pthreads和MacOSX. 关于java-JavaJVM是否使用pthread?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/30816307/

java - Java JVM 是否使用 pthread?

MacOSX上的JVM是否使用pthread创建线程?在Linux发行版上,现在是否默认为所有发行版上的JVM创建线程? 最佳答案 是的,HotSpotJVM(即OracleJDK和OpenJDK)在Linux上使用pthreads和MacOSX. 关于java-JavaJVM是否使用pthread?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/30816307/