java
weixin_44075325
这个作者很懒,什么都没留下…
展开
-
高并发,线程,锁
并发编程的挑战上下文切换即使是单核处理器也是支持多线程的,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的执行时间,因为时间片非常短,所以CPU通过不停的切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是在切换前会保存你上一个任务的状态,以便下次切换回这个任务时,可以在加载这个任务的状态。所以任务从保存到在加载的过程就是一次上下文切换。类似读书,一本英文原著和一原创 2021-12-22 10:54:15 · 385 阅读 · 0 评论 -
超详细的线程理解!!!
java和线程一般谈起并发一定 绕不开多线程线程的实现线程时候比进程更轻量级的调度执行单位,线程的引入可以吧一个进程的资源分配和执行调度分开,各个线程即可以共享进程资源(内存地址,文件I/O等),又可以独立调度,目前线程是java里面进行处理器资源调度的基本单位,不过如果日后Loom项目能成功为JAVA引入纤程的话可能改变这一点进程:是操作系统资源分配的基本单位,比如内存、打开文件、网络IO,分配了独立的内存空间线程:是操作系统资源调度的基本单位,cpu分配的基本单位纤程:是用户态的线程,是原创 2021-04-07 10:41:25 · 125 阅读 · 0 评论 -
synchronized分析
synchronized使用方式1 同步实例方法,锁是当前实例对象2 同步类方法,锁是当前类对象3 同步代码块,锁是括号里面的对象实现方式synchronized是JVM内置锁,通过内部对象Monitor(监视器锁)实现,基于进入和退出Monitor对象实现方法与代码块同步,监视器锁的实现依赖底层操作系统的Mutex lock(互斥锁)实现...原创 2021-04-06 08:33:47 · 68 阅读 · 0 评论 -
JAVA线程的上下文切换底层逻辑(图文)
https://www.processon.com/diagraming/606b1a66637689306d4e96ca原创 2021-04-06 00:39:21 · 155 阅读 · 0 评论 -
自旋锁
自旋锁是相当于一个线程在读取值的时候,如果锁已经被其他线程度获取,那么线程将循环等待,然后不断的判断锁是否能够被成功获取,自旋到或许锁才会退出循环。自旋锁存在的意义与试用场景阻塞与唤醒线程需要操作系统切换cup状态,需要消耗一段时间同步代码块逻辑简单,执行时间很短自旋是为了避免线程的阻塞和唤醒。...原创 2021-03-22 17:10:52 · 64 阅读 · 0 评论 -
关于悲观锁和乐观锁(偏向理论)
悲观锁:悲观锁认为每次自己在操作资源的时候会有其他线程来修改数据,在获取数据的时候会先加锁,确保自己数据不会被其他线程影响。锁实现:接口Lock的实现类。关键字synchronized试用场景:写操作较多,先加锁保证写数据是数据的正确wait()方法;阻塞notify()方法;不阻塞线程阻塞和不阻塞的区别:阻塞涉及到上下文的切换,不阻塞不会涉及乐观锁:乐观锁认为自己在使用数据的时候不会有其他线程修改数据,所以不会加锁,只是在更新数据的时候来判断之前也没有别的线程修改了这条数据锁实现:CA原创 2021-03-18 16:38:15 · 89 阅读 · 0 评论 -
关于java关于锁
JAVA主流锁体系全面认知1,乐观锁 悲观锁2,读锁(共享锁),写锁(排它锁)3,自旋锁,非自旋锁4,无锁,偏向锁,轻量级锁,重量级锁5,分布式锁6,区间锁(分段锁) java.util.concurrent下所有的类都需要了然于胸 ConcurrentHashMap以下锁基于AQS:7,重入锁,非重入锁8,公平锁,非公平锁...原创 2021-03-18 10:14:33 · 63 阅读 · 0 评论 -
maven将jar包交给本地maven管理命令
mvn install:install-file "-Dfile=E:\weixin\WeChat Files\wxid_wpbcibvwqsf622\FileStorage\File\2020-09\ojdbc6-11.2.0.1.0.jar" "-DgroupId=com.oracle" "-DartifactId=ojdbc6" "-Dversion=11.2.0.1.0" "-Dpackaging=jar"命令解释:Dfile:是我要转成的maven依赖的jar包DgroupId: 决定了将原创 2020-09-23 12:43:46 · 195 阅读 · 0 评论 -
使用maven安装jar包到本地仓库时遇到The goal you specified requires a project to execute but there is no POM in thi
转自 https://www.cnblogs.com/zhexuejun/p/11525623.html转载 2020-09-23 12:41:50 · 579 阅读 · 1 评论