摘要:
1、公平锁、非公平锁 是什么 公平锁就是先来后到、非公平锁就是允许加塞,Lock lock = new ReentrantLock(Boolean fair); 默认非公平。 **==公平锁==**是指多个线程按照申请锁的顺序来获取锁,类似排队打饭。 **==非公平锁==**是指多个线程获取锁的顺序 阅读全文
摘要:
一、我们知道ArrayList是线程不安全的,请编写一个不安全的案例并给出解决方案 HashSet与ArrayList一致 HashMap HashSet底层是一个HashMap,存储的值放在HashMap的key里,value存储了一个PRESENT的静态Object对象 protected tr 阅读全文
摘要:
当一个处理器想要更新某个变量的值时,向总线发出LOCK#信号,此时其他处理器的对该变量的操作请求将被阻塞,发出锁定信号的处理器将独占共享内存,于是更新就是原子性的了。 1、compareAndSet 比较并交换 AtomicInteger.conpareAndSet(int expect, indt 阅读全文
摘要:
一.谈谈对volatile的理解 volatile是java虚拟机提供的轻量级的同步机制 保证可见性、不保证原子性、禁止指令重排 1.可见性理解:所有线程存放都是主内存的副本(比如某个变量值为25),t1线程的工作内存发生改变(值25改为37),写会主内存中,及时通知其他线程t2,t3更新最新的主内 阅读全文
摘要:
jvm 一、类装载器ClassLoader 负责加载class文件,class文件在文件开头有特定的文件标示,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engin 阅读全文
摘要:
1.RDD[K,V],键值对类型的rdd的函数在PairRDDFunctions这个类中 rdd类中,通过隐士转换让rdd有了PairRDDFunctions这个类里面方法的功能 2.rdd 的join方式 1.join=》rdd[k,v] join rdd[k,w]=》RDD[(K, (V, W) 阅读全文
摘要:
distinct的底层使用reducebykey巧妙实现去重逻辑 //使用reduceByKey或者groupbykey的shuffle去重思想rdd.map(key=>(key,null)).reduceByKey((key,value)=>key) .map(_._1) 阅读全文
摘要:
从源码看: reduceBykey与groupbykey: 都调用函数combineByKeyWithClassTag[V]((v: V) => v, func, func, partitioner)reduceBykey的map端进行聚合combine操作mapSideCombine = true 阅读全文
摘要:
//判断a是否小于b private static boolean less(Comparable v, Comparable w) { return v.compareTo(w) < 0; } //两个交换 private static void swap(Comparable arr[], in 阅读全文
摘要:
#!/bin/bash #队列名 根据yarn的队列提交 realtime_queue=root #提交的任务名 my_job_name="OrderQZ" spark-shell --master yarn --deploy-mode client \ --queue $realtime_queu 阅读全文