- 博客(5)
- 收藏
- 关注
原创 【JavaSE】偏向锁、轻量级锁和重量级锁,如何获取锁,如何撤销锁。
一、java对象头锁的获取和撤销会关系到对象头,所以先来看看对象头。Java对象头Mark Word字段存放内容:根据竞争状态的激烈程度,锁会自动进行升级,锁不能降级(为了提高锁获取)一、偏向锁由于老版本的内建锁synchronized存在最大的问题:在存在线程竞争的情况下会出现线程的阻塞以及唤醒带来的性能问题,这是一种互斥同步(阻塞同步)。大多数情况下,锁不仅不存在多线程竞争...
2018-11-20 00:01:35 2480 4
原创 【JavaSE】线程的同步和死锁,synchronized对象锁和全局锁,一个生活的例子解释。
一、synchronized加锁操作1.多线程为什么要加锁?因为在多线程启动之后,所有线程都是无顺序任意运行的,甚至几乎同时访问同一个资源或者代码块,所以上一个线程对资源所做的改变,还没来得及使用,就有可能被下一个线程所覆盖。引入锁的概念,就是为了让竞争资源在各个线程使用的时候可以互不影响。2.synchronized两种使用方法对象锁...
2018-11-16 20:06:11 332
原创 【JavaSE】多线程的实现继承Thread类,实现Runnable接口,实现Callable<V>接口
一、线程是什么我们都知道进程是一个程序在系统中运行的一个周期。但是一个进程在运行的过程中,不一定只执行一项任务。所以就要引入线程。线程就是进程进行分支任务的时候,每一个任务就称为一个线程。main方法也是一个线程,他是所有分支线程的主线程线程与进程的比较与进程相比,线程更加的"轻量级",创建、撤销一个线程比启动、撤销一个进程开销要小的多,并且一个进程中的所有线程共享此进程的所有资源。...
2018-11-14 16:42:03 358 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人