【linux 查看 cpu个数 核心数 线程数】教程文章相关的互联网学习教程文章

linux – Perl用bash中的线程捕获Ctrl-C【代码】

虽然我看到如何拥有Perl trap Ctrl-C (sigint) in bash;我迷失了为什么它会因为线程而失败;我正在尝试以下脚本:#!/usr/bin/env perluse threads; use threads::shared; # for shared variablesmy $cnt :shared = 0;sub counter() {while (1) {$cnt++;print "thread: $cnt \n";sleep 1;} }sub finisher{### Thread exit! ...print "IIII";threads->exit();die; };# any of these will cause stop of reaction to Ctrl-C $SIG{INT} ...

linux – 为什么在启用超线程后性能会变差?

我将Linux内核2.6.32移植到Intel(R)Xeon(R)CPU E31275 @ 3.40GHz.如果我在BIOS中启用超线程,我可以看到8个CPU内核(CPU0~CPU7).大多数中断发生在CPU 4中,并且该核心的CPU使用率远高于其他中断(几乎是其他中断的两倍).我不太了解它,因为我认为我没有设置任何IRQ绑定操作. 如果我在BIOS中禁用超线程,那么一切正常. IRQ已经平衡,所有内核(CPU0~CPU3)的CPU使用率也几乎是平衡的. 有人可以解释一下吗?它与BIOS有关吗?我应该在内核中做一...

c linux多线程网络

我在网关上有一个网络应用程序.它接收和发送数据包.对于大多数人来说,我的网关充当路由器,但在某些情况下,它也可以接收数据包. 我应该: >只有一个主线程>一个主线程一个调度线程负责将它提供给正确的流程处理程序>尽可能多的线程流量>别的. ?解决方法:正确地进行多线程并不是一件简单的事情,在许多情况下,基于select和friends的解决方案将更容易创建.

C:Linux平台上的线程同步方案【代码】

我正在为Linux平台实现多线程C程序,我需要一个类似于WaitForMultipleObjects()的功能. 在搜索解决方案时,我观察到有些文章描述了如何在Linux中使用示例实现WaitForMultipleObjects()功能,但这些示例不满足我必须支持的场景. 我的情况非常简单.我有一个守护进程,主线程将一个方法/回调暴露给外部世界,例如暴露给DLL. DLL的代码不在我的控制之下.相同的主线程创建一个新线程“线程1”.线程1必须执行一种无限循环,在该循环中它将等待关...

linux进程调度策略如何与线程调度策略相关?

我在线程与进程调度之间有点混淆. 我已经阅读了有关流程调度策略的内容 http://man7.org/linux/man-pages/man2/sched_getscheduler.2.html 我读过有关线程调度的内容 http://man7.org/linux/man-pages/man3/pthread_getschedparam.3.html 线程是否从其进程继承调度策略?是否可以将进程调度设置为SCHED_OTHER,然后将该进程的一个线程设置为SCHED_FIFO?我独立理解策略但不了解线程/进程关系.有没有洞察力?解决方法:Linux根本不支持...

linux线程的实现(转)【代码】【图】

原文:https://www.cnblogs.com/zhaoyl/p/3620204.html 首先从OS设计原理上阐明三种线程:内核线程、轻量级进程、用户线程 内核线程 内核线程就是内核的分身,一个分身可以处理一件特定事情。这在处理异步事件如异步IO时特别有用。内核线程的使用是廉价的,唯一使用的资源就是内核栈和上下文切换时保存寄存器的空间。支持多线程的内核叫做多线程内核(Multi-Threads kernel )。 轻量级进程 轻量级线程(LWP)是一种由内核支持的用户线...

linux下c语言实现多线程文件复制【转】【代码】

转自:https://www.cnblogs.com/zxl0715/articles/5365989.html1、具体思路 把一个文件分成N份,分别用N个线程copy, 每个线程只读取指定长度字节大小的内容 最后一个线程的源文件所指定的结束位置是文件的实际大小 每个线程读取指定源文件部分的起始位置和结束位置的内容到缓冲区 每个线程将缓存中的内容写入目的文件的指定开始位置和结束位置 主线程必须等到所有线程copy完成后才能退出2.有关文件操作的函数 2.1. 文件的打开和关...

linux – 如何在多线程程序中使用Ollydbg?

>我看过here,Olly支持多线程调试,但我找不到任何视频或一个很好的教程来了解如何调试多线程程序.>我想知道如何使用Ollydbg并查看所有当前线程的堆栈和寄存器,并区分现在正在运行的线程.>我可以在Linux / Windows中使用其他任何好的调试工具吗?解决方法:在Ollydbg中调试多线程应用程序非常简单. 单击“T”按钮或转到“视图”>打开“线程”窗口.线程.此窗口显示应用程序中的所有当前线程. 主线程通常在列表中突出显示.如果右键单击您...

Linux bash多线程/处理小型工作【代码】

我有一个运行一些数据处理命令10K次的脚本.foreach f (folderName/input*.txt)mycmd $f end我已经为每个“mycmd $f”定时运行时间为0.25秒.通过10K运行,它总计超过1小时.我在16核nehalem上运行它.如果不在剩余的15个核心上运行,那将是一个巨大的浪费. 我试过&有了睡眠,不知何故,脚本会在3900次迭代时死于警告或错误,见下文.睡眠时间越短,死亡的速度越快.foreach f (folderName/input*.txt)mycmd $f & ; sleep 0.1 end必须有一个更好...

测量Linux多线程应用程序的堆栈使用情况【代码】

我正在为Linux嵌入式平台开发一个多线程应用程序. 目前我正在将每个线程的堆栈大小(通过pthread_set_attr)设置为相当大的默认值.我想将每个线程的值调整为更小的值以减少应用程序的内存使用量.我可以通过试验和错误路径将每个线程的堆栈大小设置为逐渐变小的值,直到程序崩溃,但应用程序使用~15个线程,每个线程具有完全不同的功能/属性,因此这种方法非常耗时. 我更愿意能够直接测量每个线程的堆栈使用情况.是否有人可以推荐这样做的...

linux – msgsnd()线程和/或进程安全吗?

如果两个pthreads在“相同”时间调用msgsnd()函数,将消息发送到同一消息队列会发生什么? 如果两个进程相同怎么办?它们是线程还是进程是否重要? 特别感兴趣的Linux 2.6.15-2.5#1 SMP PREEMPT Tue Sep 19 10:56:25 CDT 2006 x86_64 x86_64 x86_64 GNU / Linux解决方法:man page for pthreads告诉你你想知道什么:A thread-safe function is one that can be safely (i.e., it will deliver the same results regardless of whethe...

Linux编程入门三多线程【代码】【图】

早期Linux不支持线程,直到1996年,Xavier Leroy等人才开发出第一个基本符合POSIX标准的线程库LinuxThreads,但其效率低而且问题多。自内核2.6开始,Linux才真正提供内核级的线程支持,并有两个组织致力于编写新的线程库:NGPT(Next Generation POSIX Threads,2003年放弃)和NPTL(Native POSIX Thread Library)。NPTL比LinuxThreads效率高,且更符合POSIX规范,所以它已经成为glibc的一部分。线程可分内核线程和用户线程。内核线程...

如何在linux上实现线程安全计时器?

我们知道,在信号处理程序中执行操作非常糟糕,因为它们在类似中断的上下文中运行.当调用信号处理程序时,很可能保持各种锁(包括malloc()堆锁!). 所以我想在不使用信号机制的情况下实现线程安全定时器. 我能怎么做? 对不起,实际上,我并不期待有关线程安全的答案,但是关于在Unix或Linux上实现一个线程安全的计时器的答案.解决方法:在你的线程中使用usleep(3)或sleep(3).这将阻止线程,直到超时到期. 如果您需要等待I / O并且在任何I /...

linux下查java进程的那个线程占用CPU过高原因

1. 查找进程 top查看进程占用资源情况 明显看出java的那个进程占用过高cpu. 2.查找线程 使用top -H -p <pid>查看线程占用情况 3.查找java的堆栈信息 将线程id转换成十六进制 #printf %x 15664 #3d30 然后再使用jstack查询线程的堆栈信息 语法:jstack <pid> | grep -a 线程id(十六进制) jstack <pid> | grep -a 3d30 这样就找出了有问题的代码了。

c – 只有一个线程可能导致死锁或冻结Linux上的程序?【代码】

我正在做C多线程编程.我使用互斥锁来读取和写入队列以避免死锁.目前,我只推出1个线程pthread_mutex_lock(&the_mutex);但是,在GDB中,我的代码在这里被冻结,它正在等待. 为什么?只有一个线程!!! 谢谢解决方法:从pthread_mutex_lock()手册页:If the mutex type is PTHREAD_MUTEX_NORMAL, deadlock detection shallnot be provided. Attempting to relock the mutex causes deadlock. If athread attempts to unlock a mutex that it...