多线程
文章平均质量分 91
梦nine
这个作者很懒,什么都没留下…
展开
-
JUC初识
文章目录JUC1.ReentrantLock2.信号量3.计数器:CountDownLauthCountDownLauth是如何实现的?CountDownLauth缺点4.循环屏障(循环栅栏):CyclicBarrier循环屏障的使用:CyclicBarrier和CountDownLatch区别?HashMapHashMap线程安全方案ConcurrentHashMapHashtable:线程安全的容器HashMap,ConcurrentHashMap,Hashtable区别?JUC1.Reentran原创 2021-06-08 20:45:06 · 204 阅读 · 4 评论 -
Web,网络,线程总结
文章目录JQueryTomcat:发布应用程序HTTPHTTP状态码(重要)Maven:构建和打包Java项目的工具Maven和Gradle的不同?Servletsession和cookie不同?网络OSITCP/IPUDPTCP*TCP十大特性网络层当输入一个url之后会发生什么?并发和并行进程和线程不同?现场的3种创建方式死锁线程池线程池的7种创建方式:ThreadPoolExecutor7大参数ThreadPoolExecutor执行流程拒绝策略ThreadLocal原理?前端三剑客:1.HTML原创 2021-06-07 17:28:33 · 625 阅读 · 6 评论 -
JVM终篇
回顾:JVM组成:1.堆(创建的所有对象)新生代/老生代老年代中的对象:大对象,新生代经过一定GC之后(默认15次)还存活的对象新生代(复制算法)新生代区域划分:Eden:80%内存、S0:10%内存,S1:10%内存新生代内存利用率可达到90%(Eden+S0或Eden+S1)2.Java虚拟机栈a)本地变量(8大初级类型和对象引用)b)操作栈c)动态链接:运行常量池的引用d)方法返回:PC寄存器的地址3.本地方法栈作用和Java虚拟机栈相似,只不过他是本地方法4.程序计数器原创 2021-06-03 20:09:36 · 240 阅读 · 0 评论 -
JVM布局及类加载机制
文章目录JVM:Java虚拟机Java内存布局(HotSpot)堆划分:新生代区域划分:为什么大对象会直接进入老年代?JVM内存布局小结:JVM类加载机制(Class Loading)JVM双亲委派模型双亲委派模型优点:破坏双亲委派模型的场景:垃圾回收1.判别死亡对象(垃圾)垃圾回收算法垃圾回收器JVM:1.JVM组成(5个部分)2.类加载机制(JVM加载)双亲委派模型,破坏双亲委派模型的3个场景3.垃圾回收 a)判断什么是垃圾回收? &n原创 2021-05-30 22:17:41 · 122 阅读 · 0 评论 -
双亲委派模型及垃圾回收
文章目录JUC1.ReentrantLock2.信号量3.计数器:CountDownLauthCountDownLauth是如何实现的?CountDownLauth缺点4.循环屏障(循环栅栏):CyclicBarrier循环屏障的使用:CyclicBarrier和CountDownLatch区别?HashMapHashMap线程安全方案ConcurrentHashMapHashtable:线程安全的容器HashMap,ConcurrentHashMap,Hashtable区别?JUC1.Reentran原创 2021-05-30 12:16:31 · 145 阅读 · 0 评论 -
多线程高阶
文章目录回顾:乐观锁乐观锁的缺点:CAS:(Compare and swap 比较并且交换)CAS底层实现原理?CAS缺点:乐观锁的实现:Atomic*多线程乐观锁的执行流程悲观锁悲观锁缺点:怎么理解乐观锁和悲观锁,具体怎么实现?共享锁 /非共享锁(独占锁)读写锁公平锁 /非公平锁自旋锁:可重入锁synchronized 锁优化回顾:ThreadLocal缺点:1.不可继承性(不能实现父子线程间的数据传递)2.脏数据---->ThreadLocal +线程池(复用)线程的复用会复用线程相关的静原创 2021-05-29 10:00:53 · 174 阅读 · 1 评论 -
多线程学习9
文章目录回顾:hashmap和ThreadLocalMap区别:Java引用类型4种类型:为什么将ThreadLocal中的key设置为弱引用?解决Thread Local的内存溢出?饿汉方式:上来直接创建对象懒汉方式自定义阻塞队列:回顾:ThreadLocal使用方法1.set(T) : 将变量存放到线程中2.get() : 从线程中取得私有变量3.remove() : 从线程中移除私有变量(脏读,内存溢出)在任何场景下都有意义4.initialValue:初始化5.withinitialV原创 2021-05-26 17:24:04 · 85 阅读 · 0 评论 -
多线程 八
线程不安全的解决方案:1.CPU抢占式执行【不可行】2.加锁(synchronized,Lock)3.私有变量(ThreadLocal 线程本地变量)ThreadLocal线程级别的私有变量,任务级别的私有变量是完全不同线程池:10 任务数:1000任务级别的私有变量:创建1000个私有变量ThreadLocal私有变量:创建10个私有变量。需求1:使用最高效的方式实现2个Date(时间类型)的格式化?public class ThreadPoolMain64 { public s原创 2021-05-23 22:48:40 · 112 阅读 · 0 评论 -
操作系统初识
操作系统:1.硬件2.软件硬件:硬件组成:冯诺依曼体系结构(普利斯顿体系结构)——>二进制输入设备:键盘,麦克风,手写板输出设备:音效,显示器存储:内存,磁盘CPU:注意事项:CPU和输入设备或输出设备之间不能直接交互,必须依靠中间的存储部分内存和磁盘的区别:1.内存读写速度要远远大于磁盘,内存读写速度是纳秒级别的,硬盘读写速度微秒级别的。2.内存的价格远大于磁盘3.内存中的数据不能持久化,电脑重启之后数据就没了;而磁盘的可以持久化软件:进程:一个执行任务就是一个进程。可原创 2021-04-22 20:59:10 · 152 阅读 · 0 评论 -
线程学习2
回顾:计算机:——硬件:——软件(os操作系统)内核系统【内核态】,用户部分【用户态】进程:系统分配资源的最小单位单进程程序–>多进程程序(缺点:不能互相共享资源)线程:系统调度的最小单位。轻量级“进程”优点:创建的时候占有更少的资源,并且多个线程间可以共享资源线程共享的资源:1,打开的文件2,共享内存(new Object)线程和进程之间的区别:1.进程是系统分配资源的最小单位,线程是系统调度的最小单位2.一个进程中至少包含一个线程3.线程必须要依附于进程,线程是进程实质原创 2021-04-27 12:03:58 · 182 阅读 · 1 评论 -
线程学习3
回顾:线程和进程的区别线程的创建:1.继承Thread类(单继承)[2种]2.继承Runnable run[4种]3.jdk 1.5 实现Callable +futureTask线程的构造方法:1.设置线程名2.设置线程任务3.设置线程分组线程的常用属性:IDName状态优先级(1~10,默认5)守护线程(后台线程)线程的分类守护线程用户现场(main)守护线程需要注意的事项:1.守护线程设置必须在调用start之前();如果设置守护线程在开始线程之后原创 2021-04-27 21:34:40 · 109 阅读 · 0 评论 -
线程学习4
文章目录回顾:Java中解决线程安全问题的方案:synchronized使用:LOCK使用:面试题:volatile和synchronized区别:synchronized和Lock区别:回顾:start和run区别:1.run属于普通方法,start属于启动线程的方法2.run方法可以执行多次,而start方法只能执行一次线程终止:1)全局的自定义变量2)interrupt()终止3)使用线程提供的方法stop来终止线程(已经废弃不用)线程状态新建(new)执行状态(runnabl原创 2021-04-29 21:36:53 · 452 阅读 · 0 评论 -
线程学习5
文章目录回顾:线程创建方式:线程常用方法和属性:线程安全问题线程不安全的五个因素:线程安全问题解决方案:synchronized死锁:死锁操作的四个条件(同时满足):如何解决死锁问题:线程通讯机制:面试:wait为什么要加锁:面试: wait为什么要释放锁:wait /notify / nofifyAll 使用注意事项:面试:Thread.sleep(0) 和 Object.lock(0)的区别wait和sleep的区别面试:为什么wait会放到Object中而不是Thread?wait和LockSuppo原创 2021-05-09 12:29:52 · 106 阅读 · 1 评论 -
多线程六(线程池一)
文章目录线程的缺点:线程池:线程池里面包含的重要内容(2个):线程池的创建方式(7种)第一种:创建固定个数的线程池方法二:创建带缓存的线程池方法三:创建可以执行定时任务的线程池scheduleAtFixedRate 和cheduleWithFixedDelay的区别:方法四:创建单个执行定时任务的线程池方法五:单个线程的线程池方法六(JDK 8+):根据当前工作环境(CPU核心数,任务量)异步线程池回顾:线程:------三种创建线程的方式------线程的常用方法------线程的分类----原创 2021-05-20 15:14:10 · 135 阅读 · 1 评论 -
多线程七(线程池二)
文章目录线程:线程池的优点线程池7种创建方式:方法七:原始创建线程池的方法ThreadPoolExecutor参数:线程池拒绝策略:自定义拒绝策略+JDK四种策略1默认拒绝策略,不执行任务,抛出异常标题2.使用调用者线程来执行任务(使用主线程来执行任务)3.忽略最新任务(不会报错)4.忽略老任务线程池执行流程线程池的两种执行方式:execute和submit的区别线程池的关闭:线程池的状态:总结重点:线程:1.线程创建需要开辟一定的内存空间(本地方法栈,虚拟栈,程序计数器)性能开销。2.当任务量比较大原创 2021-05-23 19:53:51 · 349 阅读 · 0 评论