目标       实现一千万个不重复整数的排序,可以一次性加载到 2G 的内存里. 本文适合于想要了解新语言 Scala 并发异步编程框架 Akka, Future 的筒鞋. 读完本文后,将了解如何综合使用 ForkJoin 框架. Akka 模型.以及 Future 进行并发异步编程,还有一系列小的编程点. 任务拆分 首先要进行任务拆分.要实现一千万个不重复整数的排序, 可以拆分为三个子任务: (1)  生成一千万的不重复整数并写入文件 NumberGeneratorTask: (2) 从文件…
定位  本文适合于想要了解新语言 Scala 以及异步并发编程框架 Akka, Future 的筒鞋. 读完本文后,将了解如何使用 ForkJoin 框架.如何使用 Akka 构建并发程序.如何使用 Future 进行异步编程,还有一系列小的编程点. 目标       实现十亿个不重复整数的排序, 由于文件外排序没有解决,因此,暂时实现的是一千万个不重复数,可以一次性加载到 2G 的内存里.  一. 任务拆分 首先要进行任务拆分.要实现一千万个不重复整数的排序, 可以拆分为三个子任务: (1)…
Java订单号生成,唯一订单号 相信大家都可以搜索到很多的订单的生成方式,不懂的直接百度.. 1.订单号需要具备以下几个特点. 1.1 全站唯一性. 1.2 最好可读性. 1.3 随机性,不能重复,同时效率高. 直接贴代码: 简单解释: 1.根据当前的时间戳以及apache commons自己带的随机数方法生成,效率极高,而且日均千万级别不重复. 2. 而且长度固定,数据库可以设置固定的长度.22位 测试结果非常的强悍.…
存储qq的文件地址以及按照密码相似度排序的文件地址 //存储qq的文件的地址 ] = "QQ.txt"; //按照密码相似度排序的文件地址 ] = "QQpasswordsort.txt"; 标识qq一共有多少行 //文件一共有多少行 #define N 84331446 创建结构体存储密码,并把文件载入内存 //密码信息 struct info { ]; }; //指向所有结构体的指针 struct info *pall = NULL; //初始化 void in…
1 Bytes(字节) == 8 bit 1 KBytes == 1024 Bytes 思路: 1)申请长度为1亿的保存二进制位的数组 a, 2)通过位运算,将整数做为索引,将数组a对应的索引位置为1. 3)重复步骤2,直到最后一个整数放到数组中 4)从头开始遍历数组a,将值为1的索引id打印出来. python 提供了bytearray这个动态的字节数据,以下代码就用bytearray实现 class Bitmap: def __init__(self, num_bits:int): self…
勿止于结论:持续探索与求证. 概述 为什么要使用并发 ? 有三点足够信服的理由: 性能提升.单核 CPU 的性能基本抵达瓶颈,充分挖掘多核 CPU 的能力,使得性能提升变成水平可扩展的. 事件本质.世界的事件本质上是并行和并发进行的. 响应灵敏.为了构建响应更敏捷的应用,需要异步化处理,并发必不可少. 不过,并发使用姿势不当,很容易出错,导致难以估量的损失.可谓是一把双刃剑. 最近,团队有同学踩了并发的坑.我想,要不梳理下并发的一些陷阱及相关原理和解决方案吧,以备后用. 何时使用并发 并不是在所…
感谢博主lyrebing  博文地址:http://blog.csdn.net/lyrebing/article/details/20446061 1.  Actor用法 1.1 Actor的基本使用 Scala会建立一个线程池共所有Actor来使用. receive模型是Actor从池中取一个线程一直使用: react模型是Actor从池中取一个线程用完给其他Actor用 例1-1 基本运行方式1 //actor是一个类似线程的实体,它有一个用来接收消息的信箱. //实现actor的方法是继承…
注:我们现在学的Scala Actor是scala 2.10.x版本及以前版本的Actor. Scala在2.11.x版本中将Akka加入其中,作为其默认的Actor,老版本的Actor已经废弃 一.概述 1.什么是actor Scala的Actor类似于Java中的多线程编程.但是不同的是,Scala的Actor提供的模型与多线程有所不同.Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争用的情况,进而提升多线程编程的性能.此外,Scala Actor的这种模型还可…
注:Scala Actor是scala 2.10.x版本及以前版本的Actor. Scala在2.11.x版本中将Akka加入其中,作为其默认的Actor,老版本的Actor已经废弃. 1.什么是Scala Actor Scala中的并发编程思想与Java中的并发编程思想完全不一样,Scala中的Actor是一种不共享数据,依赖于消息传递的一种并发编程模式, 避免了死锁.资源争夺等情况.在具体实现的过程中,Scala中的Actor会不断的循环自己的邮箱,并通过receive偏函数进行消息的模式匹…
题目:通过子线程读取每个文件,并统计单词数,将单词数返回给主线程相加得出总单词数 package review import scala.actors.{Actor, Future} import scala.collection.mutable.HashSet import scala.io.Source /** * @author Mr.Xu * @version v1.0 * Date:2018-03-12 */ //通过子线程读取每个文件,并统计单词数,将单词数返回给主线程相加得出总单词…