
java并发编程
Taylar_where
学习,学而时习之,知新,温故而知新
展开
-
finalize方法的原理
1.什么是finalize()?有时当撤消一个对象时,需要完成一些操作。例如,如果一个对象正在处理的是非Java 资源,如文件句柄或window 字符字体,这时你要确认在一个对象被撤消以前要保证这些资源被释放。为处理这样的状况,Java 提供了被称为收尾(finalization )的机制。使用该机制你可以定义一些特殊的操作,这些操作在一个对象将要被垃圾回收程序释放时执行,在java的主类Ob...原创 2020-06-03 19:21:22 · 666 阅读 · 0 评论 -
JDK1.7下的ConcurrentHashMap
ConcurrentHashMap为什么高效? 在HashTable中,实现线程安全是通过使用synchronized来保证的,但是,当线程之间的竞争非常激烈的时候,HashTable的效率是非常低下的,就例如:当线程A在使用put操作时,此时线程B和线程C如果想要对HashTable进行put或者get操作,因为线程A已经持有了锁,线程B和C只能等待线程A释放锁。这样就导致了当竞争激烈...原创 2019-06-28 09:24:52 · 630 阅读 · 0 评论 -
经典线程问题之哲学家进餐问题
关于哲学家就餐问题,如何确保哲学家们都能就餐而不产生死锁,这个是哲学家就餐问题需要关注的基本也是核心的问题,如何确保在不产生死锁的情况下尽可能的提高并发度也是我们需要去考虑的问题。package demo.ConcurrentDemo.practice.demo1;import java.util.concurrent.ExecutorService;import java.ut...原创 2019-07-15 09:38:39 · 532 阅读 · 0 评论 -
并发编程系列一:多线程基础
1.什么是线程?什么是进程?线程和进程的关系。2.线程创建与运行。创建一个线程有那几种方式?有何区别?3.线程通知与等待,多线程同步的基础设施,等待通知模型。4.线程的虚假唤醒是什么?如何避免?5.Object中finalize()是什么?该如何使用?6.让线程睡眠的 sleep ()、yield()和join(),sleep 的线程会释放持有的锁?7.线程中断。什么是协作式中断?什么...原创 2019-08-17 20:23:03 · 291 阅读 · 0 评论