linux相关内容

带回调到python VM的pthread

假设我有一个python脚本,可通过ctypes加载共享库(SL). SL设置了pthread T1 python脚本通过SL配置回调,即python脚本从SL中调用对python可调用对象的引用的函数 替代文本http://www.gliffy.com/pubdoc/1993061/L .jpg 现在,假设T1调用了“回调"功能,那么以下假设是正确的: Python端的 ..
发布时间:2020-05-13 23:20:20 服务器开发

如何调试strace中显示的futex争用?

我正在调试多线程linux进程中的问题,该进程中某个线程似乎在几秒钟内未执行.查看strace输出显示它正在等待futex,例如 1673109 14:36:28.600329 futex(0x44b8d20,FUTEX_WAIT_PRIVATE, 1673109 14:36:33.221850)= 0 如何找出用户空间中fu ..
发布时间:2020-05-13 22:50:16 服务器开发

如何在Linux上实现POSIX线程?

我想知道通过pthreads库创建的线程实际上是内核级线程还是与内核无关的用户空间线程?我听说过对此有互斥的意见,所以我想知道真相. 解决方案 在Linux 2.6之前,它们本质上是用户空间线程,它们是粘合在一起的独立进程,因为内核没有真正的线程支持.编辑:在2.6之前,对内核级线程(clone()函数)的支持有限,但是它并未与posix线程一起使用,仅与名为linuxthreads的替代 ..
发布时间:2020-05-13 22:49:19 服务器开发

跟踪pthread调度

我想做的是创建某种图形,详细描述Linux中(两个)线程的执行情况.我不需要看线程在做什么,只需要安排它们的时间,基本上就可以看到一个时间表. 我花了最后几个小时在互联网上搜索一种跟踪pthread调度的方法.不幸的是,我发现的两个项目都需要重新编译内核( LTTng )或glibc修补还有其他方法可以做这样的事情吗?还是我不得不求助于我可以在其上进行补丁/重新编译的笔记本电脑? 最诚 ..
发布时间:2020-05-13 22:47:41 服务器开发

如何在Linux应用程序中触发虚假唤醒?

某些背景: 我有一个依赖第三方硬件和封闭源驱动程序的应用程序.驱动程序当前存在一个错误,该错误会导致设备在随机的一段时间后停止响应.这是由驱动程序内部明显的死锁引起的,并中断了我的应用程序的正常运行,而该应用程序始终处于24/7的高度可见的环境中. 我发现,将GDB附加到进程,并立即从进程中分离GDB会导致设备恢复功能.这是我的第一个迹象,表明驱动程序本身存在线程锁定问题.有某种种族条 ..
发布时间:2020-05-13 22:47:38 服务器开发

C read()线程安全吗?

我正在编写一个程序,其中多个线程可能同时从一个文件读取.没有线程正在写入文件,但是它们可能各自将其内容复制到单独的内存段中. 要实现此目的,我需要使用一个API,该API为我要读取的文件提供了文件描述符.我正在使用C的 read 函数读取文件的大部分.手册页说:“成功后,将返回读取的字节数(零表示文件结束),并且文件位置以该数字前移."但是,关于文件位置的提升是否是线程安全的,我找不到任何确 ..
发布时间:2020-05-13 21:42:36 服务器开发

在Linux上创建线程与进程的开销

我正在尝试回答在Python中创建线程与进程相比需要多少开销的问题.我从一个类似的问题修改了代码,该问题基本上是通过两个线程运行一个函数,然后通过两个进程运行相同的函数并报告时间. import time, sys NUM_RANGE = 100000000 from multiprocessing import Process import threading def timefun ..
发布时间:2020-05-13 20:12:28 服务器开发

Python多处理:比请求更多的进程

为什么当我仅使用1个内核时,为什么在同一个脚本中(在RHEL 6的htop中)运行着这么多的python进程? 对于每个任务,我都会初始化一个用于处理过程的worker类.它会初始化其他类,但不会初始化任何子进程: tasks = multiprocessing.JoinableQueue() results = multiprocessing.Queue() ..
发布时间:2020-05-13 20:12:03 服务器开发

Python:用于检测物理非HT CPU的跨平台解决方案?

我正在尝试使用跨平台方法检测计算机上非超线程内核的数量. Multiprocessing的 cpu_count 仅检测到总数处理器的数量,我可以在Linux机器上的grep/proc/cpuinfo中找到答案.但是,我正在寻找Windows解决方案. 此新闻组线程有所帮助,但我仍然尚未找到答案. 解决方案 您可以使用Tim Golden的WMI绑定来访问有关Windows上CP ..
发布时间:2020-05-13 20:07:39 服务器开发

在Linux上使用多重处理时,TKinter窗口不出现

我想在应用程序的其余部分继续运行时,生成另一个进程以异步显示错误消息. 我正在使用Python 2.6中的multiprocessing模块来创建该进程,并且试图显示带有TKinter的窗口. 此代码在Windows上可以正常运行,但是如果我调用'showerror("MyApp Error", "Something bad happened.")',则不会在Linux上运行TKint ..
发布时间:2020-05-13 20:05:15 服务器开发

根据其前面的列修改文本列

我有一个文件,其前28行只是单词.从第29行到第100行,我获得了A,B和C的原子的位置信息及其3d坐标.现在,我想对第29-100行以与Y(第三列)相关的方式更改Z(第四列): Z = Z + sin(Y/10 * Pi).仅在航站楼有可能吗?谢谢. A 0.016333 0.003203 0.472723 A 0.016333 0.035228 0.472723 B 0.016333 ..
发布时间:2020-05-13 19:09:04 服务器开发

在Linux中线程可以暂停的最短时间

在我的应用程序中,线程需要暂停很少的时间(100个时钟周期).暂停的一种方法是调用nanosleep,但我想它需要对内核进行系统调用.现在,我想暂停而不进入内核. 请注意,我有足够的内核来运行我的线程,并且将每个线程绑定到一个单独的内核,因此即使是可以将内核暂停一会儿的指令也将是不错的.我正在使用x86.我只是希望线程在暂停时暂停.我不想繁忙的循环或对内核的系统调用.是否有可能做到这一点?我 ..
发布时间:2020-05-13 02:25:35 服务器开发

Nanomsg组播带宽问题

我可以在nanomsg的pub/sub协议中进行纯多播吗? 由于可以有N个订阅者对单个发布者的特定数据感兴趣,因此相同的订阅数据正在N个不同的流中流动.如果单个流的带宽为10MB,则N个流所需的总带宽为10 * N,因此带宽增加了.我们可以像组播中那样减少带宽吗?有人可以帮我解决这个问题吗? 解决方案 据我了解的PUB/SUB模式,数据将被一一发送到所有订户.如果订户还没有准备好接受,则数 ..

Linux select()和多个套接字的FIFO排序?

Linux select()呼叫中继事件排序有什么方法吗? 我所看到的内容的描述: 在一台机器上,我编写了一个简单的程序,该程序发送三个多播数据包,每个三个不同的多播组一个.这些数据包是背对背发送的,之间没有延迟. IE. sendto(mcast_group1); sendto(mcast_group2); sendto(mcast_group3). 在另一台机器上,我有一个接 ..
发布时间:2020-05-13 02:21:28 服务器开发