Java
你心情不错
这个作者很懒,什么都没留下…
展开
-
同步和异步、阻塞和非阻塞区别
一个你烧开水的例子:1、你开始烧开水,你就站在那里不停地看着水开没开,直到水开了--同步阻塞;2、你开始烧开水,你不在那里干等着,而是去玩会手机,但是你每隔段时间会来看看水开没开,直到水开了--同步非阻塞;3、你买了个会提醒水烧开的壶,开始烧开水,你无事可干就闲着,直到水开了壶提醒你水开了--异步阻塞;4、你买了个会提醒水烧开的壶,开始烧开水,你不在那里干等着,而是专心去玩手机,直到水开了壶提醒你...原创 2018-07-15 20:10:02 · 1174 阅读 · 0 评论 -
sleep() 和 wait() 的区别
sleep() 当前调用线程进入睡眠状态,获取不到cpu的时间执行片段,等时间到了之后才会去获取cpu的时间执行片段;wait() 当前对象的线程进入进入等待队列,处于挂起状态,当其他线程调用该对象的notify/notifyAll或者wait时间到了,当前的线程才被唤醒,继续执行。1/ 从这里来看,两者都是将线程处于“暂停”运行状态,但“继续往下执行”的条件不同;所以在选择使用的时候,前...原创 2018-07-31 00:12:24 · 195 阅读 · 0 评论 -
shutdown和shutdownNow有很大区别
shutdown:问:shutdown()有什么功能?答:阻止新来的任务提交,对已经提交了的任务不会产生任何影响。当已经提交的任务执行完后,它会将那些闲置的线程(idleWorks)进行中断,这个过程是异步的。问:如何阻止新来的任务提交?答:通过将线程池的状态改成SHUTDOWN,当再将执行execute提交任务时,如果测试到状态不为RUNNING,则抛出rejectedExecu...原创 2018-07-31 00:35:22 · 6299 阅读 · 1 评论 -
java 流的关闭顺序
一般情况下是:先打开的后关闭,后打开的先关闭另一种情况:看依赖关系,如果流a依赖流b,应该先关闭流a,再关闭流b例如处理流a依赖节点流b,应该先关闭处理流a,再关闭节点流b当然完全可以只关闭处理流,不用关闭节点流。处理流关闭的时候,会调用其处理的节点流的关闭方法如果将节点流关闭以后再关闭处理流,会抛出IO异常; FileOutputStream fos = new Fi...原创 2018-08-02 09:56:51 · 2927 阅读 · 0 评论