多线程-取消与关闭

取消与关闭

​ 对中断操作的正确理解是:它并不会真正的中断一个正在运行的线程,而只是发出中断请求,然后由线程在下一个合适的时刻中断自己。(这些时刻也被称为取消点)。有些方法,例如wait、sleep和join等,将严格的处理这种请求,当它们收到中断请求或者在开始执行时发现某个已被设置好的中断状态时,将抛出一个异常。设计良好的方法可以完全忽略这种请求,只要它们能使调用代码对中断请求进行某种处理。设计糟糕的方法可能会屏蔽中断请求,从而导致调用栈中的其它代码无法对中断请求做出响应!通常中断是取消的最合理的方式


 多线程-锁介绍

死锁

在多线程开发中,经常性需要用锁控制避免发生线程不安全。虽然能够控制线程安全,但是在使用过程中也会发生死锁的情况。最常见的两种情况,第一种情况是加锁顺序不同情况下,可能会造成相互锁住对方,从而导致顺序死锁。第二种在线程池或者信号量来限制对线程的使用,也会造成资源死锁或者饥饿发生。


 多线程-CAS-非阻塞同步机制

在多线程并发中,为了追求线程的安全性,我们都会选择一些同步的机制。例如最常见的锁Synchronized,但这属于重量级锁,当竞争激烈时会引起性能问题。而Volatile利用内存可见性可以保证线程安全,但有一定的局限性只能用于修饰变量。那有没有一种同步机制即轻量且性能较高的? 那就是今天的主角-CAS


 多线程-线程池

Executor框架

是一个实现线程池的接口,也是为了灵活且强大的异步任务执行框架提供基础。将任务提交过程与执行过程解耦开来。管理线程任务的生命周期。提供了统计信息的收集、应用程序管理机制和性能监视机制。


 记一次阿里云Hk节点事故

墙升级2.0后,大部分云主机被墙被封Ip

这次是因为墙升级,所以导致到部分云主机被墙被封IP。当然我阿里云hk节点也在其中,既然封IP,那就自然想到换IP去解决呢。据我了解BWG是可以换,不过两个半月内只能换一次。但我看到很多人过了一段时间后就自动恢复,回光返照。我就试试等等看,结果等了一天后还是一样没恢复。这时候我去提工单找客服问问了,(工单系统有时也是挺人性化,毕竟之前帮我解决过很多问题)。接下来就是与客服对战了。首先回复了一些套话,


 多线程-基础构建模块

并发容器类

java1.5增加了一些并发容器工具类,如果ConcurrentHashMap、CopyAndWriteArrayList、BlockingQueue、ConcurrentLinkedQueue、PriorityQueue。java6增加了Deque和BlockingDeque。增加这些并发容器类是用来弥补并发情况下,同步容器带来的线程不安全的问题。最常见当并发迭代时另外一个线程修改了容器里的值,造成快速失败(fail-fast),这时就会抛出ConcurrentModificationException异常。其中有一些隐藏的方法也会间接触发迭代操作,比如equals和hashCode方法。


 多线程并发编程实践-基础篇

什么是线程安全?

原文如下:

a class is threadsafe when it continues to behave correctly when accessed from
multiple threads.

翻译为:当多个线程并发访问时确保与单线程访问该类一样正确。称为线程安全


 HashMap详解以及常见面试题

一、概要

本文先会将hashmap的基本概念属性梳理一遍后,再从增删改查方法中每个步骤逐一解释说明。力求达到通熟易懂,逻辑清晰,便于加深印象。


 JDK1.8 ArrayList底层分析

1.概览

ArrayList底层是由数组实现的。实现RandomAccess接口,因此支持随机访问。也就是说获取元素的时间复杂度为O(1)。而删除或者增加会造成数组元素的移动,时间复杂度为O(N)。


 centos下利用crontab实现定时任务

crontab常用命令

cron服务是linux自带的定时任务。方便快捷好用是他的优点。只要了解他的时间设置,即cron表达式,能轻松的掌握
查看当前crontab定时列表


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×