随笔分类 -  并发编程--简单版

摘要: 阅读全文
posted @ 2022-05-13 21:22 努力的达子 阅读(35) 评论(0) 推荐(0)
摘要:单例模式分为 1.饿汉式 2.懒汉式 基本模式:构造器私有,提供对应的静态方法去获取! 1.饿汉式样例: public class Hungry { //重点1:构造器私有,外部将无法创建该对象 private Hungry(){ } //重点2:自己直接创建一个该对象,引用变量被final修饰之后 阅读全文
posted @ 2022-05-13 21:21 努力的达子 阅读(39) 评论(0) 推荐(0)
摘要:Volatile是java虚拟机提供的轻量级的同步机制,特点 1.保证可见性 2.不保证原子性 3.禁止指令重排 什么是JMM: JAVA内存模型,不存在的东西,概念!约定! JMM关于同步的规定 1.线程解锁前,必须把共享变量的值刷新会主内存 2.线程加锁前,必须读取主内存的最新值到自己的工作内存 阅读全文
posted @ 2022-05-13 21:20 努力的达子 阅读(78) 评论(0) 推荐(0)
摘要:在jdk1.7后,并发执行任务!提高效率,大数据量! 思想:将大任务拆分成小任务! 特点: 工作窃取 工作窃取 这里维护的都是双端队列: 原理是:当B执行完毕后,可以从下面偷取A的去执行,以达到提高效率的目的! 阅读全文
posted @ 2022-05-13 21:15 努力的达子 阅读(43) 评论(0) 推荐(0)
摘要:/** * 链式编程的写法: * 如何用一行代码实现: * 1.ID必须是偶数 * 2.年龄必须大于23 * 3.用户名转为大写字母 * 4.用户名字母倒序 * 5.只输出一个用户 */ public class Test { public static void main(String[] arg 阅读全文
posted @ 2022-05-13 21:13 努力的达子 阅读(41) 评论(0) 推荐(0)
摘要:函数式接口:只有一个方法的接口 例如Runnable @FunctionalInterface public interface Runnable { void run(); } 简化编程模型,在新版本的框架底层大量使用 四大函数式接口: 1.Function接口:泛型设置方法参数类型和返回值类型 阅读全文
posted @ 2022-05-13 21:12 努力的达子 阅读(272) 评论(0) 推荐(0)
摘要:线程池重点: 1.三大方法 2.7大参数 3.4种拒绝策略 池化技术: 程序的运行本质是:占用系统的资源!优化资源的使用==>池化技术 线程池、连接池、内存池、对象池等等 创建销毁十分浪费资源 池化技术:事先准备好一些资源,有人要用,就拿来用,用完归还 线程池的好处: 1.降低资源的消耗和浪费 2. 阅读全文
posted @ 2022-05-13 21:10 努力的达子 阅读(66) 评论(0) 推荐(0)
摘要:发现队列Queue和List/Set平级! 阻塞队列的四组API: 方式 抛出异常 有返回值,不抛出异常 阻塞 等待 超时等待 添加 add offer() put() offer 移除 remove poll() take() poll 检测队首元素 element peek() 1.抛出异常ap 阅读全文
posted @ 2022-05-13 21:07 努力的达子 阅读(49) 评论(0) 推荐(0)
摘要:读写锁:操作一个资源,写只能一个线程,读可以多个线程 具体代码如下: public class ReadWriteLock_Demo { public static void main(String[] args) { //创建了六个读线程和六个写线程去操作缓存! Mycache mycache=n 阅读全文
posted @ 2022-05-13 21:06 努力的达子 阅读(264) 评论(0) 推荐(0)
摘要:1.List集合在多线程下是不安全的 1.测试代码:创建30个线程同时操作一个资源list public class NotSafeDemo { public static void main(String[] args) { List<String> list=new ArrayList<>(); 阅读全文
posted @ 2022-05-13 20:38 努力的达子 阅读(69) 评论(0) 推荐(0)
摘要:1.lambda表达式的使用 1.lambda的使用: 只能用在函数式接口的地方,如Runable接口 //重点1:有FunctionalInterface的标签 @FunctionalInterface public interface Runnable { //重点2:接口中只有一个方法! pu 阅读全文
posted @ 2022-05-13 20:29 努力的达子 阅读(47) 评论(0) 推荐(0)
摘要:1.java默认有两个线程: 1.main线程 2.GC垃圾回收线程 2.java真的可以开启线程么? 答案是否定的,其实底层本地去调用是c++的方法,因为java是运行在虚拟机上的,无法操作硬件! 原理如下: public synchronized void start() { if (threa 阅读全文
posted @ 2022-05-13 20:28 努力的达子 阅读(117) 评论(0) 推荐(0)