2018第23周总结

Posted doit8791

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018第23周总结相关的知识,希望对你有一定的参考价值。

Java操作系统硬件的方法Unsafe

Java中通过Unsafe类native方法,通过JNI绕过JVM来操作系统cpu、内存等硬件,实现更高效率的操作,在Java基础类库和第三方开源库中都有广泛的应用,比如JUC、Netty、Kafka等。通过Unsafe你可以自己内存管理、实例化对象、操作类、对象、变量、数组,可以实现多线程同步的基础、内存屏障等。Java9中移动了Unsafe类包并增加了大量的注释,对它又放开了些。

Java并发实现线程阻塞原语LockSupport

LockSupport工具类通过静态方法提供了多线程间阻塞唤醒原语,和CAS操作一样是JUC锁的基础,它的原理是通过类似信号量的permit【值为0或1】控制线程是否阻塞,调用unpack将其值设置为1,调用pack方法时消费permit,若本身permit已为0则阻塞当前线程。它与原来Ojbect的wait、notify方法阻塞线程的好处时,不用像或者一样必须在同步块中,并且可以先在某些特殊情况下即使先执行了unpack再park也不会导致线程意外阻塞。

JUC包中的锁框架

JUC包中的锁,包括:Lock接口,ReadWriteLock接口,LockSupport阻塞原语,Condition条件,AbstractOwnableSynchronizer/AbstractQueuedSynchronizer/AbstractQueuedLongSynchronizer三个抽象类,ReentrantLock独占锁,ReentrantReadWriteLock读写锁。由于CountDownLatch,CyclicBarrier和Semaphore也是通过AQS来实现的。

线程中断总结

线程中断是开发者为了响应用户取消任务的请求让线程安全退出的一种推荐做法。它通过一个中断标记来让线程知道是否有其它线程请求让它中断,然后开发者让线程在合适的时候让自己退出。即不会造成不能停止线程导致的用户不能取消任务问题,也不会因为强行停止任务而导致数据不一致等问题。

 

以上是关于2018第23周总结的主要内容,如果未能解决你的问题,请参考以下文章

# 20175120 2018.3.10 《Java程序设计》第2周学习总结

201771010102 常惠琢 2018面向对象程序设计(Java)第14周学习总结

20189217 2018-2019-2 《移动平台开发实践》第6周学习总结

20172305 2017-2018-2 《程序设计与数据结构》第十一周学习总结

# 20155337 2017-2018 1 课上测试课下作业实验

20172329 2017-2018-2 《程序设计与数据结构》第十一周学习总结