91名师指路-头部
首页
发布需求
项目流程图
客服QQ
登录
注册
付费问答
付费问答
技术博客
源码买卖
付费问答
技术博客
源码买卖
资料下载
日程管理
91小程序
让能力变成价值! 不止写博客能赚钱,上传源码也能赚钱。例如:您写了一篇博客,当网友遇到问题咨询您时会向你支付咨询费,并且下载您上传的源码也会向您支付对应的费用。
博客列表-91名师指路91mszl.com-让能力变成价值
博客分类
前端
jquery
Nodejs
vue
Angular
Html5
bootstrap
其他
后端
java
C#
Python
Php
C++
Ruby
Go
Erlang
其他
移动开发
ios
Android
微信支付
微信小程序
支付宝支付
银联支付
Windows Phone
其他
数据库
Oracle
Sqlserver
Db2
Mysql
MongoDB
Postgresql
其他
测试
loadrunner
jmeter
其他
运维
jenkins
svn
Git
sonarqube
Nginx
Cdn
jdk
Maven
Windows系统
Linux系统
其他
工作流
Activiti
jbpm
其他
搜索引擎
solr
lucene
ElasticSearch
其他
缓存
Redis
memCache
其他
消息队列
ActiveMQ
RabbitMQ
ZeroMQ
Kafka
MetaMQ
RocketMQ
写博客
博客管理
原
阻塞队列 BlockingQueue的使用(二)
BlockingQueue 的核心方法: 方法类型 抛出异常 特殊值阻塞 超时 插入 add(e) offer(e) put(e) offer(e,time,unit) 移除 remove() poll() take() poll(time,uni
2019-12-01 22:49:42 阅读(809)
原
阻塞队列的介绍(一)
阻塞队列:1 当阻塞队列是空时,从队列中获取元素的操作将会被阻塞。2 当阻塞队列是满时,往队列中添加元素的操作将会被阻塞。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他线程从队列中移除一个或者多个元素或者全清空队列后使队列重新变得空闲起来并后续新增。在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤醒。为什么需要使用Blockin
2019-12-01 22:07:26 阅读(955)
原
java Semaphore的用法
Semaphore:叫信号量或信号灯主要用于两个目的:一个是用于多个共享资源的相互排斥使用,另一个用于并发资源数的控制。场景:3个停车位,7辆车来抢。4秒钟后有车离开,然后在剩下的4辆车里面在来抢车位。代码如下:package com.mszl.thread;import java.util.concurrent.BrokenBarrierException;import java.util.co
2019-12-01 15:04:10 阅读(843)
原
java CyclicBarrier的用法
CyclicBarrier:CyclicBarrier的字面意思是可循环(Cyclic) 使用的屏障(barrier).它要做的事情是,让一组线程到达一个屏障(也可以叫做同步点)时被阻塞,知道最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活,线程进入屏障通过CyclicBarrier的await()方法。场景:假设我们现在有7个人开会,必须要7个人全部到齐才能开始会议。代码如
2019-12-01 14:45:32 阅读(815)
原
java CountDownLatch的用法
CountDownLatch:让一些线程阻塞直到另外一些线程完成后才被唤醒。CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞,其他线程调用countDown方法计数器减1(调用countDown方法时线程不会阻塞),当计数器的值变为0,因调用await方法被阻塞的线程会被唤醒,继续执行场景:假设我们现在教室里面一共有6个人,分别为5个学生和一个老师
2019-12-01 14:09:01 阅读(1294)
原
java ReentrantReadWriteLock 读写锁
独占锁:指该锁一次只能被一个线程所持有。ReentrantLock和synchronized都是独占锁。共享锁:指该锁可以被多个线程所持有。对ReentrantReadWriteLock其读锁是共享锁,其写锁是独占锁。读锁的共享锁可保证并发读是非常高效的,读写,写读,写写的过程是互斥的。验证读写锁代码如下:package com.mszl.thread;import java.util.HashM
2019-11-28 10:31:01 阅读(842)
原
java 自旋锁
自旋锁(spinlock):是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU。手写一个自旋锁的代码如下:package com.mszl.thread;import java.util.concurrent.atomic.AtomicReference;/** * 功能:手写一个自旋锁 * 备注:更多资料请访问 http
2019-11-27 16:07:44 阅读(844)
原
java ReentrantLock 可重入锁(也叫递归锁)
可重入锁:指的是同一线程外层函数获得锁之后,内存递归函数仍然能获取该所的代码,在同一个线程的外层方法获取锁的时候,在进入内层方法会自动获取锁也就是说:线程可以进入任何一个它已经拥有的锁所同步着的代码块。看完官方的解释后你是不是很蒙蔽,给大家举个例子就明白了:相当于我们只要拿到我们进入家里大门的钥匙(锁)后,就可以进入各个房间,而不用在去获取各个房间的钥匙(锁)。备注:ReentrantLock和s
2019-11-26 22:38:05 阅读(895)
原
java 公平锁和非公平锁
公平锁:就是很公平,在并发环境中,每个线程在获取锁时,会先查看此锁维护的等待队列,如果为空或者当前线程是等待队列的第一个,就占有锁,否则就会加入到等待队列中,以后会按照FIFO(先进先出)的规则从队列中取到自己。非公平锁:非公平锁比较粗暴,上来就直接尝试占有锁,如果尝试失败,就在采用类似公平锁的那种方式。非公平锁的优点:吞吐量比公平锁大。备注:(1)并发包ReentrantLock的创建可以通过指
2019-11-26 19:43:20 阅读(721)
原
hashMap 线程不安全的演示和解决方案
一:hashMap线程不安全的代码演示:package com.mszl.thread;import java.util.HashMap;import java.util.Map;import java.util.UUID;/** * 功能:hashMap线程不安全的演示和解决方案 * 备注:更多资料请访问 http://www.91mszl.com * @author bobo teacher
2019-11-26 15:13:29 阅读(771)
共 463 行数据
首页
上一页
31
32
33
34
35
36
37
38
下一页
尾页
到第
页
确定
91名师指路-底部