首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
我只是有点困
掘友等级
JAVA开发工程师
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
4
文章 4
沸点 0
赞
4
返回
|
搜索文章
最新
热门
08ConcurrentHashMap源码分析
写在前面,本文有点长。请耐心阅读 将hashmap初始容量设置为最终的容量,这样就不会调用resize方法。使用两个线程向hashMap 进行添加数据。最终hash的个数不是10000,且每次的运行结果都不固定。这种情况使用ConcurrentHashMap就会解决并发下的问题…
07 并发工具类CountDownLatch、CyclicBarrier、Semaphore使用及源码分析
在 JUC 下包含了一些常用的同步工具类,今天就来详细介绍一下,CountDownLatch,CyclicBarrier,Semaphore 的使用方法以及它们之间的区别。 CountDownLatch是一个同步工具类,用来协调多个线程之间的同步。它允许一个或多个线程一直等待,…
05ReentrantReadWriteLock
读写锁之前提到锁(如Mutex和Reentrant Lock) 都是排他锁, 这些锁在同一时刻只允许一个线程进行访问, 而读写锁在同一时刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁…
04ReentrantLock锁
介绍java并发包中的Lock锁的基本使用与实现细节。 lock锁可以实现和synchroinzed关键字类似的同步功能。 Synchronized是关键字,内置语言实现,Lock是接口。 Lock在使用的时候需要显示的去获取锁与释放锁,缺少比synchroinzed关键字的获…
03 cpu缓存、volatile原理与内存模型
1. volatile的应用 Java ,为了确保共享变量能被准确和一致的更新,线程应该确保通过排它锁单独获取这个变量。 java语言提供了volatile,在某些情况下比加锁更加方便。如果一个字段被声明为volatile,Java线程内存模型确保所有线程看到这个变量的值是一致…
02 线程安全与Synchorinzed
1. 什么是线程安全问题 线程的合理使用能够提升程序的处理性能,主要有两个方面,第一个是能够利用多核 cpu 以及超线程技术来实现线程的并行执行;第二个是线程的异步化执行相比于同步执行来说,异步执行能够很好的优化程序的处理性能提升并发吞吐量。同时也带来了很多麻烦。如:多线程对于…
06 ReentrantLock之Condition
在前面学习synchronized 的时候,有讲到 wait/notify的基本使用,结合 synchronized可以实现对线程间的通信,JUC并发包里面提供的同样的功能。 Condition 是一个多线程协调通信的工具类里面提供了await/signal方法,可以让某些线程…
01并发编程的基础
1. 创建线程 由于Java“单继承,多实现”的特性,Runnable接口使用起来比Thread更灵活。 Runnable接口出现更符合面向对象,将线程单独进行对象的封装。 Runnable接口出现,降低了线程对象和线程任务的耦合性。 通常来说,我们使用Runnable和Thr…
个人成就
文章被点赞
21
文章被阅读
3,763
掘力值
167
关注了
5
关注者
5
收藏集
0
关注标签
6
加入于
2020-06-07