在一个CPU(一核)的电脑上, 程序的运行是并发运行的,调度的算法叫时间片轮转法,也叫轮询法 在多CPU(多核)的电脑上,一个CPU跑一个程序,刚程序运行数量小于核心数时,程序是并行的 并发:看上去一起执行,同时在发生 并行:真正的一起执行,同时在进行 进程的概念: 计算机程序是存储在磁盘上的可执行 ...
分类:
编程语言 时间:
2018-08-14 16:15:32
阅读次数:
173
什么是多线程? 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multit ...
分类:
编程语言 时间:
2018-08-14 11:33:54
阅读次数:
156
1、线程相关概念 1)、线程与进程的区别 线程是操作系统调度的最小单元,也叫轻量级进程,而进程是操作系统中的应用程序,在进程中可以创建多个线程。 2)、上下文切换 我们知道现代处理器都是多核的,几核处理器只能同时处理几个线程,多线程执行程序看起来是同时进行,实际上是CPU在多个线程之间快速切换执行, ...
分类:
编程语言 时间:
2018-08-12 00:31:25
阅读次数:
237
多核处理器日益普及的现在很多代码都得和并发/并行打交道,对于内置了并发支持(goroutine)的golang来说并发编程是必不可少的一环。 链表是我们再熟悉不过的数据结构,在并发编程中我们也时长需要用到,今天我们就来看两种带锁的并发安全的单项链表。 方案一:粗粒度锁,完全锁住链表 方案一的做法是将 ...
分类:
其他好文 时间:
2018-08-11 23:21:32
阅读次数:
232
并发:逻辑上具备同时处理多个任务的能力(单核,上下文切换) 并行:物理上同一时刻执行多个并发任务(多核,互不影响) 进程退出并不会等并发任务执行结束,可用channel阻塞,然后发出退出信号 等待多个任务结束,使用sync.WaitGroup,通过设定计数器,让每个goroutine在退出前递减,直 ...
分类:
其他好文 时间:
2018-08-10 17:15:02
阅读次数:
185
设计了基于DPDK的包捕获系统,以及把包分配到不同队列的hash算法且实现核心的负载均衡。 传统报文处理流程 缺点 多次中断。 多次拷贝,占用总线资源,降低cache利用率。 根据Linux报文处理,分析性能瓶颈 Linux下也有很多加速数据包捕获的技术。 NAPI技术:用于多个包连续到达的情况。使 ...
分类:
其他好文 时间:
2018-08-09 13:53:26
阅读次数:
179
转自:https://www.cnblogs.com/dragonsuc/p/5512797.html 查看多核CPU命令 mpstat -P ALL 和 sar -P ALL 说明:sar -P ALL > aaa.txt 重定向输出内容到文件 aaa.txt 经常用来监控linux的系统状况,比 ...
分类:
系统相关 时间:
2018-08-06 19:23:30
阅读次数:
206
一、并行世界 摩尔定律的失效,2004年秋季,Intel宣布彻底取消4GHz计划,CPU向多核心的发展,顶级计算机科学家唐纳德丶尔文丶克努斯评价:在我看来,这种现象(并发)或多或少是由于硬件设计者已经无计可施导致的,他们将摩尔定律失效的责任推脱给软件开发者。 1、几个概念 同步和异步: 并发与并行: ...
分类:
编程语言 时间:
2018-08-06 13:42:15
阅读次数:
198
提示: CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 多个物理CPU,CPU通过总线进行通信,效率比较低,如下: 多核CPU,不同的核通过L2 cache进行通信,存储和外设通过总线与CPU通信,如下: 多核超 ...
分类:
系统相关 时间:
2018-08-06 11:46:42
阅读次数:
144
CPU对内存变量的修改是先读取内存数据到CPU Cache中,然后再由CPU做运算,运算完成后继续写入到内存中 在单核CPU中,这完全没有问题,然而在多核CPU中,每一个CPU核心都拥有自己独立的Cache 此时同时访问同一个内存地址时,将会把内存值复制到多个CPU的Cache中 此时如果对Cach ...
分类:
编程语言 时间:
2018-08-04 11:47:49
阅读次数:
130