`

程序级线程和硬件级线程不同

阅读更多

因为在远程控制的图片传输中遇到一个瓶颈:增加服务器端抓取和发送屏幕图片的线程数,并没有提高一秒的图片传送的帧数。所以,看了CPU的工作原理和程序设计中线程机制这两个方面东西,主要是在网上看的。

 

总结了很多,不过我只把容易误解和理解错的部分贴出来

 

1、关于java多线程降低CPU运行效率的问题:如果CPU的运行涉及非CPU使用的事件(如网络、部分I/O等),使

用多线程将提高CPU的利用效率。而如果CPU的运行都是关于CPU使用的事件,同时CPU的使用已经达到100%,就

只能降低整个程序的执行效率。

 

2、主频就是CPU时钟频率。主频代表数字脉冲脉冲信号震荡的速度。主频一定程度上取决于流水线级数,跟处

理指令的速度有关系,但主频并不是每秒执行指令数。指令周期包含若干CPU周期,而CPU周期又包含若干时钟

周期,所以指令周期和时钟周期是两回事,并且不存在正比关系。

 

3、提高CPU的运算速度:可以通过多CPU、多核、多线程、增加流水线线的级数等等级数来实现。主频可以再提

高,不过也会因为制作工艺和研发的架构限制。不过主频太高并没有什么意义了,因为主频过高,流水线中的

电子单元运行错了,要重新整个指令的执行流程,会是CPU执行效率降低。

 

4、当软件的CPU利用率达到100%,再增加线程数已经没有任何用处。此时,只能通过增加硬件级的线程数来实

现。具体做法是用多核、SMT(同步多线程)、粗粒度的多线程技术来提高CPU的速度。
HT(超线程)属于SMT中一个分支。这个技术会是将来CPU提高性能的一个突破点。

 

5、为什么线程作为轻量级进程上下文切换时速度更加快:线程本身的数据通常只有寄存器数据,以及一个程序

执行时使用的堆栈。

 

 

P:因为本人是初学者,所以有错误还请各位高人指正谢谢~~

分享到:
评论

相关推荐

    哈工大操作系统-L11内核级线程1

    在操作系统中,线程是程序执行的基本单元,分为用户级线程和内核级线程。这两者的主要区别在于管理和调度的方式,以及它们与操作系统内核的关系。 1. **核心级线程与用户级线程的不同** - **创建与销毁**:用户级...

    哈工大 操作系统 实验8 内核级线程

    与用户级线程(User-Level Threads,ULT)不同,内核级线程由操作系统内核直接管理,具备以下特点: 1. **调度与切换**:内核级线程的调度和切换操作都在内核模式下完成,因此可以快速地进行线程上下文的切换,提高...

    linux内核级线程研究

    通过对内核级线程的理解和掌握,开发者可以更好地设计和实现高性能、高可用性的Linux应用程序和服务。在未来,随着计算机硬件技术的发展,尤其是多核和异构计算平台的普及,内核级线程的作用将更加凸显,成为提升...

    java 程序多线程设计课件

    Java程序的多线程设计是Java编程中一个重要的高级特性,它使得程序可以在同一时间执行多个不同的任务,从而提高了程序的效率和响应性。在Java中,多线程设计主要涉及以下几个关键知识点: 1. **线程的概念**:线程...

    Win32多线程程序设计(清晰 )

    在操作系统层面,一个进程可以包含多个线程,每个线程可以并行或并发地执行不同的任务,这比单线程执行方式更能充分利用CPU资源,提高程序的效率和响应速度。在Win32平台上,多线程程序设计尤为重要,因为Windows...

    Java线程 高级使用

    通过以上内容的学习,读者可以深入了解Java线程的高级使用方法,掌握如何在Java程序中高效地管理和控制线程,以及如何解决多线程环境下常见的问题。这对于开发高性能、高可用性的Java应用至关重要。

    《嵌入式Linux应用程序开发详解》之多线程编程

    核心级线程允许不同进程中的线程按照同一相对优先调度方法进行调度,这样就可以发挥多处理器的并发优势。现在大多数系统都采用用户级线程与核心级线程并存的方法。一个用户级线程可以对应一个或几个核心级线程,也...

    Win32多线程程序设计.pdf(带目录)

    《Win32多线程程序设计》一书深入探讨了在Windows操作系统环境下,利用C++进行多线程编程的技术和方法。多线程是现代软件开发中的关键概念,尤其是在资源密集型应用、实时系统和高性能计算领域。通过合理地利用多...

    多线程与程序集

    这种设计提高了系统的并发性和资源利用率,尤其是在现代多核处理器环境下,多线程可以充分利用硬件资源,提高程序性能。 在给定的描述中,“模拟生产、入库、销售多线程实现”是一个实际的应用示例,这通常指的是在...

    c#程序多线程

    线程硬件支持的目标,即支持快速进行就绪态线程、执行态线程间的切换。为达成这个目标,需要硬件实现保存、恢复程序看得见的寄存器以及一些对程序执行有影响的控制寄存器(如程序计数器PC、程序状态寄存器SR)。从一...

    POSIX多线程程序设计

    POSIX多线程程序设计是计算机编程领域中的一个重要主题,主要涉及如何在支持POSIX标准的操作系统上,如Linux和Unix,创建和管理多线程应用程序。这一技术允许程序员利用多核处理器的能力,提高程序的执行效率和并发...

    控制台多线程短信猫程序

    在IT行业中,多线程编程是一项关键技能,尤其是在开发高效能的应用程序时。"控制台多线程短信猫程序"就是一个...通过理解和实现这样的程序,开发者可以提升自己的系统级编程能力,尤其是对于并发处理和硬件交互的理解。

    2.1_6_线程的实现方式和多线程模型1

    线程是现代操作系统中的基本并发执行单元,它允许程序中的不同部分并行执行,提高系统的资源利用率和执行效率。线程的实现方式主要有两种:用户级线程(User-Level Thread, ULT)和内核级线程(Kernel-Level Thread,...

    多线程GDI程序

    这个VC6的示例程序MTGDI可能包含多个源代码文件,展示了如何创建线程、分配GDI资源、在不同线程中绘制图形并进行同步。学习这个例子有助于理解如何在实际项目中实现多线程GDI编程,提高程序的效率和用户体验。

    JAVA单线程多线程

    1. **性能瓶颈**:在多核处理器环境下,单线程程序无法充分利用硬件资源,可能会导致性能瓶颈。 2. **响应延迟**:如果某个任务执行时间过长,则会导致其他任务等待,从而影响用户体验。 #### 多线程的概念 多线程...

    操作系统原理线程概念与应用 操作系统原理线程概念与应用

    线程作为操作系统中的基本执行单元,是程序执行的最小单位,它比进程更轻量级,允许程序在同一时间执行多个不同的任务。本文将深入探讨操作系统原理中的线程概念及其应用。 线程的概念: 线程是进程中的一个执行...

    多线程应用程序设计 报告

    多线程编程是一种软件技术,允许在单个程序中并行执行多个任务或操作,从而提高程序的性能和响应能力。在多核处理器普及的今天,多线程编程成为提升程序效率的关键手段之一。其核心原理在于将程序分解为多个可以独立...

    Qt多线程程序设计

    3. **跨线程的信号-槽连接**:Qt中的信号与槽机制是其最具特色的设计之一,通过跨线程的信号槽连接,可以实现在不同的线程间传递数据和同步状态。 #### 二、Qt线程相关的类 Qt提供了一系列线程相关的类,帮助...

Global site tag (gtag.js) - Google Analytics