精华内容
下载资源
问答
  • 写程序的多线程(可无限)和cpu的线程关系.(好像是超过cpu线程后就是模拟线程,阻塞的方式来模拟的.类似于mfc定时器) 不知道我说的对不对 那么硬件的主频又是什么?我对比5820k与6770k,有人说玩游戏6770主频好.多线程...
  • 单核多线程与多核多线程

    万次阅读 多人点赞 2018-09-29 17:20:33
    或许有些同学对于单核多线程和多核多线程有点误区,因为会听到一些同学问为什么单核能处理多线程,总结了一些干货,下面会通俗说明下。 线程和进程是什么 线程是CPU调度和分配的基本单位(可以理解为CPU只能看到...

    单核多线程与多核多线程

    或许有些同学对于单核多线程和多核多线程有点误区,因为会听到一些同学问为什么单核能处理多线程,总结了一些干货,下面会通俗说明下。

    线程和进程是什么

    • 线程是CPU调度和分配的基本单位(可以理解为CPU只能看到线程)
    • 进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位

    单核多线程

    单核多线程指的是单核CPU轮流执行多个线程,通过给每个线程分配CPU时间片来实现,只是因为这个时间片非常短(几十毫秒),所以在用户角度上感觉是多个线程同时执行。

    多线程上下文切换

    在这里也引出多线程上下文切换,也就是CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。并且在切换前会保存上一个任务的状态,当切换回上一个任务时可以继续加载该任务的状态,从任务保存到再加载的过程就是一次上下文切换。

    例如:我们在看网上大牛的博客笔记的时候,看到别人引用到自己不知道的技术的时候,我们往往会先去大概了解下这个技术到底是什么,能做什么等等,但是在这之前我们需要加个标签(或者其他标识)记住这篇博客我看到哪里。把这个技术了解完之后再返回去看这篇博客,从标记的地方继续往下看(这就是上下文切换的例子)。不过在看到一半然后去看别的文章,会影响到效率,多线程也一样,会影响到多线程执行速度。

    多核多线程

    多核多线程,可以把多线程分配给不同的核心处理,其他的线程依旧等待,相当于多个线程并行的在执行,而单核多线程只能是并发

    1. 单CPU中进程只能是并发,多CPU计算机中进程可以并行。
    2. 单CPU单核中线程只能并发,单CPU多核中线程可以并行。
    3. 无论是并发还是并行,使用者来看,看到的是多进程,多线程。
    展开全文
  • thread_concurrency = 8 该参数取值为服务器逻辑CPU数量×2,在本例中,服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4 × 2 = 8 skip-networking 开启该选项可以彻底关闭MySQL的TCP/IP...

    在Apache, PHP, MySQL的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接影响到论坛的速度和承载量!同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验进行判断,然后设置合理的参数。

    下面我们了解一下MySQL优化的一些基础,MySQL的优化我分为两个部分,一是服务器物理硬件的优化;二是MySQL自身(my.cnf)的优化。

    1.服务器硬件对MySQL性能的影响

    a) 磁盘寻道能力(磁盘I/O),以目前高转速SCSI硬盘(7200转/秒)为例,这种硬盘理论上每秒寻道7200次,这是物理特性决定的,没有办法改变。MySQL每秒钟都在进行大量、复杂的查询操作,对磁盘的读写量可想而知。所以,通常认为磁盘I/O是制约MySQL性能的最大因素之一,对于日均访问量在100万PV以上的Discuz!论坛,由于磁盘I/O的制约,MySQL的性能会非常低下!解决这一制约因素可以考虑以下几种解决方案:

    使用RAID-0+1磁盘阵列,注意不要尝试使用RAID-5,MySQL在RAID-5磁盘阵列上的效率不会像你期待的那样快; 抛弃传统的硬盘,使用速度更快的闪存式存储设备。经过Discuz!公司技术工程的测试,使用闪存式存储设备可比传统硬盘速度高出6-10倍左右。

    b) CPU 对于MySQL应用,推荐使用S.M.P.架构的多路对称CPU,例如:可以使用两颗Intel Xeon 3.6GHz的CPU。

    c) 物理内存对于一台使用MySQL的Database Server来说,服务器内存建议不要小于2GB,推荐使用4GB以上的物理内存。

    2.MySQL自身因素当解决了上述服务器硬件制约因素后,让我们看看MySQL自身的优化是如何操作的。对MySQL自身的优化主要是对其配置文件my.cnf中的各项参数进行优化调整。下面我们介绍一些对性能影响较大的参数。

    由于my.cnf文件的优化设置是与服务器硬件配置息息相关的,因而我们指定一个假想的服务器硬件环境:

    CPU: 2颗Intel Xeon 2.4GHz

    内存: 4GB DDR

    硬盘: SCSI 73GB

    下面,我们根据以上硬件配置结合一份已经优化好的my.cnf进行说明:

    1

    vi /etc/my.cnf

    以下只列出my.cnf文件中[mysqld]段落中的内容,其他段落内容对MySQL运行性能影响甚微,因而姑且忽略。

    1
    2
    3
    4
    5
    [mysqld]
    port = 3306
    serverid = 1
    socket = /tmp/mysql.sock
    skip-locking
    1

    避免MySQL的外部锁定,减少出错几率增强稳定性。

    skip-name-resolve 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!

    back_log = 384 指定MySQL可能的连接数量。当MySQL主线程在很短的时间内接收到非常多的连接请求,该参数生效,主线程花费很短的时间检查连接并且启动一个新线程。

    back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。 如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自己的限制。

    试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。

    key_buffer_size = 256M

    1

    key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。 对于内存在4GB左右的服务器该参数可设置为256M或384M。

    注意:该参数值设置的过大反而会是服务器整体效率降低! max_allowed_packet = 4M thread_stack = 256K table_cache = 128K sort_buffer_size = 6M 查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。

    read_buffer_size = 4M 读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享!

    join_buffer_size = 8M 联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享!

    myisam_sort_buffer_size = 64M table_cache = 512 thread_cache_size = 64 query_cache_size = 64M 指定MySQL查询缓冲区的大小。可以通过在MySQL控制台执行以下命令观察:

    < SHOW VARIABLES LIKE ‘%query_cache%’; < SHOW STATUS LIKE ‘Qcache%’; 如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况; 如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多。

    tmp_table_size = 256M max_connections = 768 指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提 示,则需要增大该参数值。

    max_connect_errors = 10000000 wait_timeout = 10 指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10。

    thread_concurrency = 8 该参数取值为服务器逻辑CPU数量×2,在本例中,服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4 × 2 = 8

    skip-networking 开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接!

    展开全文
  • CNYths多核多线程

    2019-11-28 21:32:39
    CNYths多核多线程线程和进程是什么 线程和进程是什么 线程是CPU调度和分配的基本单位(可以理解为CPU只能看到线程) 进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位 ...

    CNYths多核多线程

    线程和进程是什么

    线程是CPU调度和分配的基本单位(可以理解为CPU只能看到线程)
    进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位

    展开全文
  • 单核cpu多核cpu如何执行多线程

    千次阅读 2020-03-31 11:19:00
    花了很多时间来整理这方面的相关内容 程序和进程 程序: 为完成特定任务,用某种语言编写的一组指令集合,即一段静态的代码 进程: 是程序的一次执行过程,或是...一个进程同一时间并行多个线程,多线程是程序有多...

    花了很多时间来整理这方面的相关内容,参考博客:多CPU,多核,多进程,多线程

    程序和进程

    • 程序: 为完成特定任务,用某种语言编写的一组指令集合,即一段静态的代码
    • 进程:程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,比如电脑上的各种运行中的软件

    进程和线程

    • 进程可进一步细化为线程,是一个程序内部的一条执行路径,比如杀毒软件中的体检,杀毒,清理等都是一个进程中的多个线程
    • 一个进程同一时间并行多个线程,多线程是程序有多个线程在同时执行,就表示支持多线程
    • 线程是CPU调度和分配的基本单位(可以理解为CPU只能看到线程)
    • 进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位
    • java默认有2个线程:main和GC

    并行与并发

    • 并行: 指在同一时刻,有多条指令(线程)在多个处理器(cpu上多个核)上同时执行,并行在多处理器系统中存在
    • 并发: 指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,并发可以在单处理器和多处理器系统中都存在

    单核多线程

    单核多线程指的是单核CPU轮流执行多个线程,通过给每个线程分配CPU时间片来实现,只是因为这个时间片非常短(几十毫秒),所以在用户角度上感觉是多个线程同时执行。

    多核多线程

    可以把多线程分配给不同的核心处理,其他的线程依旧等待,相当于多个线程并行的在执行

    CPU的多核和应用程序的多线程的关系

    多核就是系统同时可以运行多个线程,比如双核可以同时执行两个线程。单核儿只能一次执行一个线程

    规律

    • 单CPU中进程只能是并发,多CPU计算机中进程可以并行也可以并发。
    • 单CPU单核中线程只能并发,单CPU多核中线程可以并行也可以并发。
    • 无论是并发还是并行,使用者来看,看到的是多进程,多线程。
    展开全文
  • CPU多核线程控制

    千次阅读 2010-12-09 16:53:00
    cpu下SetThreadAffinityMask运用框架2009年10月22日 星期四 23:04 static DWORD WINAPI ZFive5Proc(LPVOID p) {  //自己需要控制代码开始  _asm{  push eax  mov eax,...
  • 或许有些同学对于单核多线程和多核多线程有点误区,因为会听到一些同学问为什么单核能处理多线程,总结了一些干货,下面会通俗说明下。 线程和进程是什么 线程是CPU调度和分配的基本单位(可以理解为CPU只能看到...
  • 多核多线程CPu问题

    2017-02-27 09:33:43
    如果用多线程执行同一个任务,那么在多核多线程CPU的情况下,会不会同时有两个核心处理两个线程,而这两个线程却在操作同一个任务数据?
  • 英特尔多核多线程技术

    热门讨论 2011-04-02 16:07:43
    多核多线程技术。线程与进程有很多类似的性质,因此人们习惯上也称线程为轻量级进程(lightweight process, LWP) ,也是CPU 调度和分派的基本单元; 而传统意义上的进程则被称为重量级进 程(heavyweight process,...
  • CPU多核,和多线程编程有关系吗?多线程编程是以多核CPU为基础的吗
  • 多核cpu多线程理解

    2021-04-12 20:07:13
    多核cpu多线程理解
  • 多核多线程同步

    千次阅读 2012-10-21 01:14:15
    1.2.6 多核多线程同步 本书多线程的实现主要是在Windows平台上,因此WinThread和OpenMP是最主要的实现。多线程实现的核心是并行,并行的难点是同步。因为往往会导致程序出错或者效率不高。 那么什么是同步?...
  • 示例代码展示了如果在windows实现多线程的同步,如何在多核CPU上开辟多个线程同时运行。
  • 多核多线程

    2013-05-10 15:28:36
    “超线程”技术原理揭示 “超线程”(Hyperthreading Technology)技术就是通过采用特殊的硬件指令,...其实,从实质上说,超线程是一种可以将CPU内部暂时闲置处理资源充分“调动”起来的技术。   采用超线程即是可
  • 多核CPU就是一个中央处理器 有两个或者两个以上核心!相当人头,有两个大脑或者两个以上!...多芯核心cpu主要分原生多核和封装多核(多芯)。最原生多核指的是真正意义上的多核,早由AMD提出,每个核心之间都是完...
  • 利用多核多线程进行程序优化

    千次阅读 2013-12-21 22:52:52
    利用多核多线程进行程序优化
  • 多核 多线程 进程的概念

    千次阅读 2015-05-09 20:13:07
    我们在买电脑的时候经常遇到一些概念,我这电脑是多核多线程的,什么双核的,什么四核、八核的,这种运动速度电脑快!那么这样的电脑为什么运行速度快?当然,运行速度快有很多原因,比如主频、缓存什么的。这里我们...
  • 多核多线程笔记

    2014-02-26 12:22:12
    1,几种常见的线程模型:对等线程、委托线程、管道线程、生产消费线程,这些都可以在我们代码中看到。不具体展开。 2,参考第1点,线程池实际上属于一种积极的委托模式应用。 3,线程优先级的设定与进程优先级的...
  • CPU多线程是指同一个处理器上的多个线程同步执行并共享处理器的执行资源的线程数量 处理器核心(Core)又称为内核,是CPU最重要的组成部分。 CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来...
  • C++多线程-多核CPU下的多线程

    千次阅读 2020-01-09 11:25:12
    多核CPU下的多线程 没有出现多核之前,我们的CPU实际上是按照某种规则对线程依次进行调度的。在某一个特定的时刻,CPU执行的还是某一个特定的线程。然而,现在有了多核CPU,一切变得不一样了,因为在某一时刻很有...
  • 多核多线程技术编程

    千次阅读 2013-08-04 20:45:03
    几年之前,CPU的性能还主要取决于CPU的主频,经过超摩尔定律的发展后,没过多长时间CPU的主频...这意味着,要充分发挥多核CPU的性能,程序就必须采用多线程并发计算的方式,传统的串行程序将会极大地浪费多核CPU的运
  • 多核 多线程

    2007-03-15 17:28:00
    会降低多核的效率,自己实现一个共享内存数据的Lock,就可以方便的解决这一问题,但是自己实现的锁不能阻塞线程,也就是说Lock操作时会出现死循环,直到数据可用,这样做也会一定程度上降低cpu效率,在某些时候,...
  • 单核 多核 多线程

    2013-10-03 10:37:03
    1、锁竞争: 单核中,如果单个线程取得所,则获取CPU运行时间,其他等待获取锁的线程被阻塞。...对单核CPU,对客户端软件,采用多线程,主要是 创建多线程将一些计算放在后台执行,而不影响用户
  • 我们在设计多核多线程程序方案的时候,有时候需要比较不同程序设计方案的性能的区别。比如:同一程序在不同处理器之间切换,充分利用闲置的CPU资源或是了解不同线程绑定在不同CPU资源上的性能等等问题。这里我们可以...
  • 进程和线程多核cpu多cpu中的运行关系 cpu架构和工作原理 计算机有5大基本组成部分,运算器,控制器,存储器,输入和输出。运算器和控制器封装到一起,加上寄存器组和cpu内部总线构成中央处理器(CPU)。cpu...
  • 多核CPU多线程CPU,多发射CPU

    千次阅读 2012-05-21 18:01:49
    1.多核处理器的分类:对称处理器SMP和非对称处理器AMP。AMP又分为异构和同构。异构处理器使 用不同的核心,比如DSP+FPGA等。异构处理器目前有标准推动:Kronos发布的OPENCL。 2. 有些事实说明,当CPU 频率超过...
  • Java多核cpu多线程运行效率分析

    千次阅读 2016-03-16 12:14:59
    一直以为java线程开得越多效率越高,后来知道了执行的效率和cpu核心数有关,今天试了下多核cpu多线程的计算: 本机i5四核,分别开启1、4、10、20、40、100、400个线程做100W次,md5运算,结果如下: 全部任务执行...
  • 1.多线程在单核和多核CPU上的执行效率问题的讨论 a1: 多线程在单cpu中其实也是顺序执行的,不过系统可以帮你切换那个执行而已,其实并没有快(反而慢)多个cpu的话就可以在两个cpu中同时执行了.............. a2:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,960
精华内容 33,584
关键字:

cpu的多核多线程是什么意思