- 博客(4)
- 收藏
- 关注
原创 FutrueTask的使用
在刚刚开始学习FutrueTask的时候,对于怎样去使用他并不是很了解,现在通过一个小例子来看看怎么去使用FutrueTaskpublic class Main{ public static String doSomething() throws InterruptedException { Thread.sleep(2000); return "hello"; } public static void main(String[] args)...
2021-11-04 21:44:32 294
原创 线程池、多线程、单线程性能对比及原因分析
测评一下使用多线程、线程池和单线程情况下的效率public class Main{ public static void main(String[] args) throws InterruptedException { List<Integer> l = new LinkedList<>(); ThreadPoolExecutor tp = (ThreadPoolExecutor) Executors.newFixedThreadPoo...
2021-11-04 21:05:04 1543
原创 直接使用ConcurrentHashMap代替HashMap来做类似计数的功能时会有什么问题呢?
在看《大型网站系统及Java中间件实践》这本书的时候,作者在书中提出了一个简单的问题在使用Hashmap进行多线程计数时,程序是这样的public class TestClass{ private HashMap<Integer,Integer> map = new HashMap<>(); private Synchronized void add(int key){ Integer value = map.get(key);
2021-11-03 10:25:36 230
原创 Java中的线程等待与通知相关方法await,notify等
(1)wait函数调用wait方法后,线程被阻塞挂起,直到其他线程调用了notify()或notifyAll()后返回,其他线程调用了interrupt()方法,抛出InterruptedException异常返回。如果调用wait()方法前没有获取到该对象的监视器锁,则会抛出IllegalMonitorException异常synchronized(queue){ //防止虚假唤醒,对queue资源进行循环检测,直到满足条件后才执行后面的add操作 while(queue.siz...
2021-10-06 11:29:22 866
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人