spark job,stage,task划分 发表于 2017-03-01 | 分类于 spark action 的触发会生成一个job Job会提交给DAGScheduler,分解成Stage,DAGScheduler 根据shuffle将job划分为不同的stage 同一个stage中包含多个task,这些tasks有相同的 shuffle dependencies 阅读全文 »
二进制位运算 发表于 2017-02-26 | 分类于 java 总结几个位运算的用法 下面举的例子中,a=1010 1010 按位与&(1)清零:a&0=0 (2)取指定位上的数字,如取得数字a的最后四位:a&0000 1111 = 0000 1010 按位或|(1)对某些位置置为1,如将a的后四位置为1:a|0000 1111 = 10 ... 阅读全文 »
ConcurrentLinkedQueue 发表于 2017-02-26 | 分类于 juc 在JAVA多线程应用中,队列的使用率很高,多数生产者和消费者的首选数据结构就是队列(先进先出)。JAVA提供的线程安全队列分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子就是BlockingQueue,而非阻塞队列的典型例子就是ConcurrentLinkedQueue,在实际应用中要根据实际需要来 ... 阅读全文 »
CAS无锁算法 发表于 2017-02-26 | 分类于 juc CAS:Compare and Swap 比较并交换 java.util.concurrent包完全建立在CAS之上的,没有CAS就没有并发包。并发包借助了CAS无锁算法实现了区别于synchronized同步锁的乐观锁。因为对于CAS算法来说,就是在不加锁的前提下而假设没有冲突去完成某个操作,如果 ... 阅读全文 »
JAVA并行框架:Fork/Join 发表于 2017-02-26 | 分类于 juc 背景虽然目前处理器核心数已经发展到很大数目,但是按任务并发处理并不能完全充分的利用处理器资源,因为一般的应用程序没有那么多的并发处理任务。基于这种现状,考虑把一个任务拆分成多个单元,每个单元分别得到执行,最后合并每个单元的结果。 Fork/Join框架是JAVA7提供的一个用于并行执行任务的框架,是 ... 阅读全文 »
杀死指定线程 发表于 2017-02-26 | 分类于 juc 使用布尔值运行控制使用循环让线程不停运行,通过布尔值:isRun 控制是否继续运行,从而控制线程在适当的时候停止运行。如图所示,这种方法比较常用。 isRun可以是一个布尔表达式,或者是一个变量。 interrupt()自己结束自己如果一个线程由于等待某些事件的发生而被阻塞,又该怎样停止该线程呢 ... 阅读全文 »
PriorityQueue 发表于 2017-02-25 | 分类于 java 优先队列,Priority是优先的意思,实际上这个队列就是具有“优先级”。既然具有优先级的特性,那么就得有个前后排序的“规则”。所以其接受的类需要实现Comparable 接口。 构造函数123456PriorityQueue()PriorityQueue(Collection<? ext ... 阅读全文 »
while read读取文件内容 发表于 2017-02-25 | 分类于 shell 默认文件中每列按照tab分割1234while read ip user passdo echo "$ip--$user--$pass"done < ip.txt 1234cat ip.txt | while read ip user passdo echo & ... 阅读全文 »