摘要:
在jdk1.7后,并发执行任务!提高效率,大数据量! 思想:将大任务拆分成小任务! 特点: 工作窃取 工作窃取 这里维护的都是双端队列: 原理是:当B执行完毕后,可以从下面偷取A的去执行,以达到提高效率的目的! 阅读全文
摘要:
/** * 链式编程的写法: * 如何用一行代码实现: * 1.ID必须是偶数 * 2.年龄必须大于23 * 3.用户名转为大写字母 * 4.用户名字母倒序 * 5.只输出一个用户 */ public class Test { public static void main(String[] arg 阅读全文
摘要:
函数式接口:只有一个方法的接口 例如Runnable @FunctionalInterface public interface Runnable { void run(); } 简化编程模型,在新版本的框架底层大量使用 四大函数式接口: 1.Function接口:泛型设置方法参数类型和返回值类型 阅读全文
摘要:
线程池重点: 1.三大方法 2.7大参数 3.4种拒绝策略 池化技术: 程序的运行本质是:占用系统的资源!优化资源的使用==>池化技术 线程池、连接池、内存池、对象池等等 创建销毁十分浪费资源 池化技术:事先准备好一些资源,有人要用,就拿来用,用完归还 线程池的好处: 1.降低资源的消耗和浪费 2. 阅读全文
摘要:
发现队列Queue和List/Set平级! 阻塞队列的四组API: 方式 抛出异常 有返回值,不抛出异常 阻塞 等待 超时等待 添加 add offer() put() offer 移除 remove poll() take() poll 检测队首元素 element peek() 1.抛出异常ap 阅读全文
摘要:
读写锁:操作一个资源,写只能一个线程,读可以多个线程 具体代码如下: public class ReadWriteLock_Demo { public static void main(String[] args) { //创建了六个读线程和六个写线程去操作缓存! Mycache mycache=n 阅读全文
摘要:
1.List集合在多线程下是不安全的 1.测试代码:创建30个线程同时操作一个资源list public class NotSafeDemo { public static void main(String[] args) { List<String> list=new ArrayList<>(); 阅读全文
摘要:
1.lambda表达式的使用 1.lambda的使用: 只能用在函数式接口的地方,如Runable接口 //重点1:有FunctionalInterface的标签 @FunctionalInterface public interface Runnable { //重点2:接口中只有一个方法! pu 阅读全文
摘要:
1.java默认有两个线程: 1.main线程 2.GC垃圾回收线程 2.java真的可以开启线程么? 答案是否定的,其实底层本地去调用是c++的方法,因为java是运行在虚拟机上的,无法操作硬件! 原理如下: public synchronized void start() { if (threa 阅读全文
摘要:
简介 1.什么是缓存 1.存在内存中的临时数据 2.将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询, 从缓存中查询,从而提高查询效率,解决高并发系统性能问题 2.为什么使用缓存 减少和数据库的交互次数,减少系统开销,提高系统效率 3.什么样的数据使用 阅读全文