- 博客(10)
- 收藏
- 关注
原创 网站推荐相关排序问题(4种)
1、2、时间B为固定值,t为至今减去B的值。x为赞踩差值。3、考虑到了问题的浏览数量,回答数量还有赞踩数量带来的影响4、考虑到有效的投票人数v和最低投票人数m,防止某一部冷门电影只有一个人评论而导致评分排名过高5、可以了解一下Rating的匹配排名算法...
2018-05-06 11:32:42
351
原创 多线程学习-有序性
Java内存模型中,允许编译器和处理器对指令进行重排序,但是重排序过程不会影响到单线程程序的执行,却会影响到多线程并发执行的正确性volatile、synchronized、Lockhappens-before原则:先行发生原则程序次序规则:一个线程内,按照代码顺序,书写在前面的操作先行发生于书写在后面的操作锁定规则:一个unLock操作先行发生于后面对同一个锁的lock操作volatile变量规...
2018-04-15 16:50:23
377
原创 多线程学习-可见性
可见性导致共享变量在线程间不可见的原因: 线程交叉执行 重排序结合线程交叉执行 共享变量更新后的值没有在工作内存与主内存之间刷新可见性----synchronized JMM关于synchronized的两条规定: 线程解锁前,必须把共享变量的最新之刷新到主...
2018-04-15 16:35:37
190
原创 多线程学习-原子性(2)-synchronized
Synchronized==============修饰代码块和修饰方法的作用一样,各调用对象之间互不影响=======================================修饰静态方法和修饰类的作用是一致的,相当于原子操作,同一时间只有一个线程可以执行=========原子性-对比 synchronized:不可中断锁,适合竞争不激烈,可读性好 Lock:可中断锁,多样化同...
2018-04-15 16:14:07
203
原创 多线程学习-原子性(1)-Atomic
记录自己基于SpringBoot对多线程并发进行学习一.准备工作配置SpringBoot,在GIT上创建项目,将创建导入本地测试Spring是否启动成功,测试是否返回test写了4个annotations,用来表示安全和不安全,推荐和不推荐写法其中使用了lombok二.正式开始线程安全性 定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式,或者这些进程将如何交替执行,并且在主调代码...
2018-04-11 21:13:09
228
原创 IO流复习提醒
第一天 File类1.File类静态成员变量2.File类的三种构造3.File类常用方法4.list()和listFiles()方法5.FileFilter过滤器与listFiles()的联合使用6.递归遍历目录第二天 字节流(适合所有)1.FileInputStream2.FileOutputStream文件的续写 :①构造函数加true ②append()函数3.加缓冲字节数组 n...
2018-03-22 23:06:28
170
原创 类加载器
一、类加载器图(1)启动类加载器(Bootstrap ClassLoader):负责加载存放在JDK/jre/lib下,或者被-Xbootclasspath参数指定的路径中的,并且能够被虚拟机识别的类库;(2)扩展类加载器(Extension ClassLoader):负责加载JDK/jre/lib/ext目录中,或者由java.ext.dirs系统变量指定的路径中的所有类库,开发者可以直接使用扩...
2018-03-15 14:34:37
191
原创 JVM类加载机制
在JVM运行时数据区之前,首先会将源码文件通过类加载器进行加载JVM运行时数据区链接:http://blog.csdn.net/qq_41329373/article/details/79478867一、类的加载机制1、类的声明周期(1)加载、连接(验证、准备、解析)、初始化、使用和卸载(2)注意:解析阶段在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定。另外这几个阶段是...
2018-03-08 18:05:17
147
原创 JVM运行时数据区
一、JVM运行时数据区数据共享区方法区 Method Area(运行时常量池(1.8以后存在于堆中))堆 Heap数据私有区虚拟机栈 VM Stack ---->栈帧(局部变量表,操作数栈,动态链接,返回地址)本地方法栈 Native Method Stack程序计数器 Program Counter Register二、数据共享区 1、方法区 ...
2018-03-08 00:31:37
181
原创 进程的死锁,以及银行家算法
死锁产生的原因: 1、系统资源不足; 2、进程运行推进的顺序不合适; 3、资源分配不当等。死锁产生的四个必要条件:1、互斥条件:一个资源每次只能被一个进程使用2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放3、不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系--------------...
2018-03-07 20:36:45
241
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人