除了顺序流外,Java 8中也可以对集合对象调用parallelStream方法或者对顺序流调用parallel方法来生成并行流。并行流就是一个把内容分成多个数据块,并用不同的线程分别处理每个数据块的流。这样在使用流处理数据规模较大的集合对象时可以充分的利用多核CPU来提高处理效率。不过在一些情况下 ...
分类:
编程语言 时间:
2019-10-05 20:19:41
阅读次数:
132
一、Redis简介1.1、相关nosql产品及对比1.1.1、Memcached优点:高性能读写、单一数据类型、支持客户端式分布式集群、一致性hash、多核结构、多线程读写性能高。缺点:无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复杂度高1.1.2、Redi... ...
分类:
其他好文 时间:
2019-10-03 18:01:48
阅读次数:
94
一、协程概述 1、什么是协程? 协程也被称为“微线程”,在一个线程中规定某个代码块的执行顺序。线程和进程的操作是由程序触发系统接口,最后的执行者是系统;协程的操作则是程序员。 2、为什么会有协程? 对于多线程应用,CPU通过切片的方式来切换线程间的执行,线程切换时需要耗时(保存状态,下次继续)。协程 ...
分类:
其他好文 时间:
2019-09-29 09:27:53
阅读次数:
115
上一篇文章 "可见性有序性,Happens before来搞定" ,解决了并发三大问题中的两个,今天我们就聊聊如何解决原子性问题 原子性问题的源头就是 线程切换 ,但在多核 CPU 的大背景下,不允许线程切换是不可能的,正所谓「魔高一尺,道高一丈」,新规矩来了: 互斥: 同一时刻只有一个线程执行 实 ...
分类:
其他好文 时间:
2019-09-23 09:34:49
阅读次数:
85
一、协程的优势 1、极高的执行效率。没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。 2、不需要多线程的锁机制。因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。 因为协程是一个线程执行,利用多核CPU最简单 ...
分类:
编程语言 时间:
2019-09-22 21:41:25
阅读次数:
125
一、Stream并行计算体验,利用多核加快计算速度 stream的并发,多个cpu执行同一个任务,提高效率; 需求:从1+...+10000000,看下各种计算方法的运行时间是多少 代码例子如下: console: 结论:不一定是所有的方法产生的Stream都适合于并行的方式去做的,一定要注意有些方 ...
分类:
其他好文 时间:
2019-09-22 21:30:05
阅读次数:
118
一、多进程的使用 计算密集型的执行任务中 :推荐使用多进程 原因:充分利用cpu的多核优势,并行的去计算 二、多线程的使用 IO密集型的执行任务中 :推荐使用多线程 原因: 1. 开启线程的时间比开启进程的时间要块的多,并且没开启进程还需要开辟一个新的内存空间 2. 如果我这个任务又很多很多次IO的 ...
分类:
编程语言 时间:
2019-09-22 21:15:59
阅读次数:
90
三、Web Worker 1.概述 JavaScript语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核 CPU 的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力。 Web Worke ...
分类:
Web程序 时间:
2019-09-20 19:16:11
阅读次数:
81
前面已经讲过很多Golang系列知识,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 接下来要说的是golang的并发,其实之前简单介绍过协程(goroutine)和管道(channel) 等基础内 ...
分类:
其他好文 时间:
2019-09-20 13:59:05
阅读次数:
96
在深入理解volatile关键字的过程中,出现了一些之前没有了解到的知识点,而这些知识点有影响着我对volatile的认知,下面就对这些知识点做一些梳理 MESI是什么 为了解决速度不匹配问题,计算机中多处使用到了缓存。为了解决CPU和内存的速度不匹配问题,出现了高速缓存。在多核CPU的计算机中,每 ...
分类:
其他好文 时间:
2019-09-19 15:55:21
阅读次数:
80