- 博客(6)
- 收藏
- 关注
原创 多线程 -volatile关键字
volatile定义:为了确保共享变量能被准确和一致性地更新,线程应该确保通过排他锁单独获取这个变量。Java语言提供了volatile。如果一个字段被声明成volatile关键字,Java线程内存模型确保所有线程看到这个变量值的一致性。并发三大特征: 1.原子性:一个操作或多个操作,必须全部完成并且过程中不能被任何因素打断,或者都不执行。synchronized和Lock锁住执行代码块,可以保证原子性。 2.可见性:多个线程访问同一个数据,保证其他线程能实时看见这个数据的最新状态。保证对共..
2021-02-24 17:24:11
131
原创 synchronized关键字
synchronized的原理:JVM来对此进行实现和保证的。每一个JAVA对象,其都对应一个Monitor(监视器)。标注有synchronized的语句块(如果我们将函数也看做是语句块,只不过是一段包装在函数内部的语句块)的头部和尾部,在JDK编译的时候,加入了monitorenter和monitorexit指令。通过对monitor的排他性获取,实现了同一时间仅有一个线程可以进入synchronized语句块,当语句执行完毕之后,线程释放monitor,从而使得其他等待获取monitor的线程依次获取
2021-02-24 17:05:41
93
原创 线程
线程与进程的概念,关系线程:进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。进程:一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。线程与进程的关系:根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位 包含关系:如果一...
2021-02-23 17:18:34
118
原创 HashMap总结
HashMap:HashMap是基于哈希表的Map接口的非同步实现,可以使用null值和null键,可以按照Key和Value去使用集合使用格式:HashMap<Key,value>Key和Value都可以为空值、Key当重复时会覆盖前面的Key值,Value可重复输入。构造函数:①.HashMap():构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。 ②.HashMap(int initialCapacit...
2021-02-23 17:02:17
118
原创 Linux初步见解
Linux介绍:特点: 开源、免费、自由使用;多用户、多线程、多任务、多CPU。 组成:Linux = 内核 + shell + 文件系统 + 应用程序 应用:服务器、手机操作系统… 分支:Redhat、debain… 安装:VMware一.目录结构/ 根目录每一个文件和目录都是从根目录开始的,只有root用户由该目录下的写权限。1.bin 用户二进制文件包括可执行的的二进制文件。系统所有的命令都设在这里。2.sbin 系统二进制文件包括可执行的二进制
2021-02-21 21:18:49
110
原创 冒泡排序
冒泡排序算法原理:冒泡排序的原理(以递增序为例)是每次从头开始依次比较相邻的两个元素,如果后面一个元素比前一个要大,说明顺序不对,则将它们交换,本次循环完毕之后再次从头开始扫描,直到某次扫描中没有元素交换,说明每个元素都不比它后面的元素大,至此排序完成。冒泡排序的时间复杂度:若程序的原始排序是排好序的,一次即可扫描完成,那么它的比较次数A和记录移动次数B达到最小值。所以,冒泡排序最好的时间复杂度是o(n)。若程序的原始排序是反序的,则需要进行N次排序。在这种情况下,它的比较次数A和记录移动次数B都达到最
2020-11-10 20:32:21
130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅