mrlonelyjtr's blog

写BUG的程序猿


  • Home

  • Categories

  • Archives

  • Tags

  • Search

java.util.concurrent.locks包和Read-Write Lock模式

Posted on 2018-12-27 | In Multithread
java.util.concurrent.locks包提供了已实现Read-Write Lock模式的ReadWriteLock接口和ReentrantReadWriteLock类。 java.util.concurrent.locks.ReadWriteLock接口的“用于读取的锁”和“用于写入的 ...
Read more »

【图解Java多线程设计模式】Read-Write Lock模式

Posted on 2018-12-26 | In Multithread
在Read-Write Lock模式中,读取操作和写入操作是分开考虑的。在执行读取操作之前,线程必须获取用于读取的锁。而在执行写入操作之前,线程必须获取用于写入的锁。由于当线程执行读取操作时,实例的状态不会发生变化,所以多个线程可以同时读取。但在读取时,不可以写入。当线程执行写入操作时,实例的状态就 ...
Read more »

【图解Java多线程设计模式】总结

Posted on 2018-12-22 | In Multithread
Single Threaded Execution模式 语境多个线程共享实例时。 问题如果各个线程都随意地改变实例状态,实例会失去安全性。 解决方案首先,严格地规定实例的不稳定状态的范围(临界区)。接着,施加保护,确保临界区只能被一个线程执行。这样就可以确保实例的安全性。 实现Java可以使用syn ...
Read more »

java.util.concurrent包和Producer-Consumer模式

Posted on 2018-12-21 | In Multithread
java.util.concurrent包中的队列java.util.concurrent包提供了BlockingQueue接口及其实现类,它们相当于Producer-Consumer模式中的Channel角色。 类图 BlockingQueue接口——阻塞队列BlockingQueue接口表示的是 ...
Read more »

Map与JavaBean之间相互转化

Posted on 2018-12-17 | In Java
反射可以操作各种不同的Java类,而内省只是通过反射来操作JavaBean的。 内省12345678910111213141516171819202122232425262728293031323334353637383940public Map<String, Object> bea ...
Read more »

InterruptedException异常

Posted on 2018-12-13 | In Multithread
如果方法后面加了throws InterruptedException,则表明该方法中(或者该方法进一步调用的方法中)可能会抛出InterruptedException异常。 加了throws InterruptedException的方法在Java的标准类库中,加了throws Interrupt ...
Read more »

【图解Java多线程设计模式】Producer-Consumer模式

Posted on 2018-11-28 | In Multithread
生产者安全地将数据交给消费者。Producer-Consumer模式在生产者和消费者之间加入了一个“桥梁角色”。该桥梁角色用于消除线程间处理速度的差异。 示例有3位糕点师制作蛋糕并将其放到桌子上,然后有3位客人来吃这些蛋糕。 时序图 Main.java123456789101112public cl ...
Read more »

超时

Posted on 2018-11-21 | In Multithread
介于“直接balk并返回”和“等待到守护条件成立为止”这两种极端的处理方法之间,还有一种处理方法,那就是“在守护条件成立之前等待一段时间”。在守护条件成立之前等待一段时间,如果到时条件还未成立,则直接balk。将这种处理称为guarded timed或timeout。 wait何时终止在调用Java ...
Read more »

【图解Java多线程设计模式】Balking模式

Posted on 2018-11-20 | In Multithread
如果现在不适合执行这个操作,或者没必要执行这个操作,就停止处理,直接返回。 示例定期将当前数据内容写入文件中。当数据内容被写入时,会完全覆盖上次写入的内容,只有最新的内容才会被保存。 时序图 Data.java123456789101112131415161718192021222324252627 ...
Read more »

【图解Java多线程设计模式】Guarded Suspension模式

Posted on 2018-11-14 | In Multithread
如果执行现在的处理会造成问题,就让执行处理的线程进行等待。 示例一个线程(ClientThread)会将请求(Request)的实例传递给另一个线程(ServerThread),这是一种最简单的线程间通信。 时序图 Request.java123456789101112131415public cl ...
Read more »
1…626364…78
mrlonelyjtr

mrlonelyjtr

间歇性踌躇满志,持续性混吃等死

780 posts
18 categories
18 tags
Github
© 2020 mrlonelyjtr
Powered by Hexo
Theme - NexT.Pisces