java并发
文章平均质量分 69
Felix_ar
每天进步一点点!
展开
-
java并发之----线程的创建方法
一、线程的创建(1)继承Thread类需要实现run方法,通过调用start方法启动线程public class MyThread extends Thread{ @Override public void run(){//实现run方法 //以下根据自己的需要来写,这里打印示例1~9 for(int i=1; i<10; i++){ System.out.print...原创 2018-11-17 16:39:36 · 220 阅读 · 0 评论 -
java并发之----synchronized与ReenTrantLock
Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,第一个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLock。synchronizedsynchronized关键字最主要几种使用方式:(1)同步一个代码块:只作用于同一个对象,如果调用两个对象上的同步代码块,就不会进行同步。public void func() { syn...原创 2018-11-10 00:07:04 · 385 阅读 · 0 评论 -
java并发之----简要介绍java对锁的几种优化
引言新版本java对锁的实现引进了许多技术进行优化,如偏向锁、轻量级锁、自旋锁、适应性自旋锁、锁消除、锁粗化等锁主要存在四种状态,依次是:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态,他们会随着竞争的激烈而逐渐升级。注意锁可以升级不可降级,这种策略是为了提高获得锁和释放锁的效率。java中关于锁的名词很多,若不注意区分很容易混淆,我们可以按照类别来记忆,例如下面介绍的“偏向锁、轻量级锁、...原创 2018-11-10 00:26:21 · 287 阅读 · 0 评论 -
java并发之----volatile关键字
一、volatile在java中,volatile关键字解决的是变量在多个线程之间的可见性,一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:(1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。(2)禁止进行指令重排序。注:不了解“原子性,可见性和有序性”的同学可以看下笔者之前的...原创 2018-11-24 14:48:01 · 651 阅读 · 0 评论 -
java并发之----原子性,可见性和有序性(转载)
一、并发编程中的三个概念在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题。我们先看具体看一下这三个概念:1.原子性原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。一个很经典的例子就是银行账户转账问题:比如从账户A向账户B转1000元,那么必然包括2个操作:从账户A减去1000元,往账户B加上1000元。试想一下,...转载 2018-11-24 16:15:20 · 887 阅读 · 0 评论 -
java并发之----实现生产者/消费者模式(操作值&一对一交替打印)
实现生产者/消费者模式1、一生产与一消费:操作值利用synchronized 实现,代码如下:public class Producer { private String lock; public Producer(String lock){ this.lock = lock; } public void setValue(){ try{ synchronized ...原创 2018-11-28 15:00:34 · 1423 阅读 · 0 评论