![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java多线程
_Marshall
这个作者很懒,什么都没留下…
展开
-
Java多线程基础
线程的基本概念通过与进程的比较,来理解线程的概念。 一个进程是一个独立的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享线程中的资源。Java线程的创建Java提供了两种方式创建Thread。 - 实现 java.lang.Runnable原创 2016-09-11 09:52:27 · 272 阅读 · 0 评论 -
多线程环境中的原子操作
什么原子操作Atomic operations are performed in a single unit of task without interference from other operation。原子操作就是不可再分的操作。换句话说,一个操作或者多个操作要么全部执行并且执行的过程中不会被任何因素打断,要么就都不执行。怎么理解不可再分,在CPU层面, 它是原子性的我们从一道试题说起以下多原创 2016-09-11 10:28:31 · 490 阅读 · 0 评论 -
Java AtomicInteger
在java中,对基本数据类型的变量的读取和复制操作是原子性操作。 但是像x++,y=x , 诸如此类的操作却不是原子性的需要考虑并发问题(原因见多线程环境中的原子操作)。对此类操作同步问题,可以采用synchronization,lock 等方法解决,但是这边介绍concurrency package 下的AtomicInteger。Java AtomicInteger Examplepackag原创 2016-09-11 11:20:45 · 375 阅读 · 0 评论 -
Java锁机制 自旋锁(spinlock)剖析
Spinlock 介绍线程通过 busy-wait-loop 方式来获取锁, 任何时刻只有一个线程能够获得锁, 其它线程忙等待知道获得锁。应用场景spinlock 不会有线程状态切换,所以响应更快。使用spinlock时, 临界区要尽量短,不要有显示或隐式的系统调用。如读写文件等操作。 临界区:指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,当有线程进入临界区段时,其他线程或是进原创 2016-09-13 22:16:37 · 5465 阅读 · 0 评论 -
Java锁机制 悲观锁和乐观锁
锁的存在,是为了解决在并发环境下,数据的一致性问题。锁机制保证了程序不会出现,脏读,冲突等情况。先介绍下,悲观锁和乐观锁的基本描述。悲观锁正如其名,当出现在多用户的并发环境中时, 它对数据出现并发冲突,持保守态度(悲观)。它假定一定出现冲突,所以在数据处理过程中,将数据锁定,使是数据处于独占状态。乐观锁乐观锁的理念与悲观锁相反, 在多用户的并发环境中,它对数据出现并发冲突,吃积极态度(乐观)。在数据原创 2016-09-18 14:35:24 · 1066 阅读 · 0 评论