高并发编程学习
徐by小宝
我是要成为java大牛的人
展开
-
happens-before 原则
原文地址 https://blog.csdn.net/a1211529911/article/details/51496732简介 Java使用新的JSR-133内存模型,JSR-133使用happens-before的概念来阐述操作之间的内存可见性。在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须要存在happens-before关系。这里提到的两个操作既...转载 2018-04-09 21:34:08 · 257 阅读 · 0 评论 -
Java高并发编程(6)
使用synchronized、wait、notify实现的生产者、消费者public class ProducterAndCustomerVersion1 { private final static Object LOCK = new Object(); private static boolean isProducted = false; private sta...原创 2018-04-06 21:52:12 · 158 阅读 · 0 评论 -
Java高并发编程(5)
sleep 和 wait 方法的区别sleep和wait方法都能使当前线程阻塞,但是它们还是有许多不同的sleep方法是Thread类的,而wait方法是Object的,它们的所属类不同sleep方法阻塞后不会释放持有锁,而wait方法在阻塞后会把持有的锁释放掉sleep方法直接使用Thread调用即可,但是wait方法需要有synchronized关键字配合才能使用,否则会报错...原创 2018-04-06 20:15:45 · 155 阅读 · 0 评论 -
Java高并发编程(4)
中断线程的一些方法线程启动完毕后,在运行可能需要终止,Java提供的终止方法只有一个stop,但是不建议使用此方法,因为它有以下三个问题:(1)stop方法是过时的;(2)stop方法会导致代码逻辑不完整;(3)stop方法会破坏原子逻辑因此需要些别的方法来打断线程,这里提供3个方法1、使用中断状态标志位,代码如下所示public class Threa...原创 2018-04-06 00:31:21 · 162 阅读 · 0 评论 -
Java高并发编程(3)
Thread 类的一些方法说明join():等待这个线程死亡。 使当前线程在该线程之后执行,join源码如下 可以看出来,join实际调用wait()方法interrupt():中断这个线程。 除非当前线程中断自身,这是始终允许的,所以调用此线程的checkAccess方法,这可能会导致抛出SecurityException 。 如果该线程阻塞的调用wait() , wait(lo...原创 2018-04-05 23:32:59 · 367 阅读 · 0 评论 -
Java高并发编程(2)
实现线程的2中方式继承Thread对象实现Runnable接口 其中,实现runnable接口中可以参考设计模式:策略模式用runnable实现线程时,启动时需要创建Thread对象并将实现runnable的接口当参数传入,实际上用的构造函数为 可以看到,在该方法中有这一步 它将传入的Runnable接口赋值给本地变量,接下来看Thread中的run方法 如果...原创 2018-04-05 18:09:56 · 149 阅读 · 0 评论 -
Java高并发编程(9)
future模式首先,需要一个Future接口,用以获取值public interface Future<T> { T get();}然后,需要一个FutureTask接口,用以定义返回值的方法public interface FutureTask<T> { T call();}再然后,需要一个FutureSer...原创 2018-04-11 22:55:30 · 177 阅读 · 0 评论 -
Java高并发编程(8)
实现ReadWriteLock锁主要lock代码//读写锁public class ReadWriteLock { /** * 正在读的线程数 */ private int readerReading = 0; /** * 等待读的线程数 */ private int readerWaiting = 0;...原创 2018-04-10 22:02:37 · 215 阅读 · 0 评论 -
Java高并发编程(1)
线程的5中状态及相互转换-新建(new): 继承Thread或实现Runnable的类用new关键字创建对象 -**就绪(runnable):**Thread或Runnable实例调用start方法 -执行(running):此时线程处于执行状态 -阻塞(blocked):当执行中的线程遇到sleep、wait、锁 等方法是,线程便处于阻塞状态 -死亡(dead):线程执行完毕或遇到异...原创 2018-03-27 23:29:22 · 221 阅读 · 0 评论 -
Java中 单例模式的一些方法总结
总的来说,应该有4中(说的不对请多见谅) - 1、饿汉式:可能会浪费资源/** * 饿汉式 */public class SignleVersion1 { private static SignleVersion1 signle = new SignleVersion1(); private SignleVersion1(){} public static...原创 2018-04-09 22:13:05 · 155 阅读 · 0 评论 -
Java高并发编程(7)
用synchronized、wait、notifyAll实现lock锁直接贴代码 lock接口public interface LockInterface { void lock() throws InterruptedException; void lock(long millis) throws InterruptedException, TimeoutExc...原创 2018-04-06 21:57:06 · 185 阅读 · 0 评论