4.线程中断

总结: 通过interrupt设置线程的中断标志位,并不能直接终止该线程,而是被中断的线程根据中断状态自行处理。 isInterrupted和interrupted都是检测线程是否被中断,区别在于isInt...

5. 线程死锁

1.线程上下文切换 缘由:cpu个数小于线程个数,为了让用户觉得所有程序都在并行进行,需要cpu切换时间片。线程A时间片结束后,为了下一次再次运行线程A时知道该从哪里继续运行,需要保存线程A的上下文信息。 线程切换时机:线程的c...

6. ThreadLocal

1. 解决的问题: 多线程访问共享变量时,为了线程安全会加入锁机制,这加重了开发者的负担。于是出现了ThreadLocal。 2. ThreadLocal类 创建共享变量时,每个线程会访问属于自己独有的一份共享变量的拷贝,从...

7.并发编程基本知识和基本原理

synchronized:保证可见性、原子性、(原子性保证指令重拍后结果不变) volatile:保证可见性、禁止指令重排序 1.java中内存可见性问题 JMM规定,所有变量都放在内存中,线程使用变量时,从...

8. java并发包--ThreadLocalRandom和原子操作类

ThreadLocalRandom类是JDK7新增的JUC下的随机数生成器,弥补了Random类在多线程情况下的缺陷。 1. java.util.Random类存在的问题 Random类生成随机数原理:首先根据旧的种子生成新的种...

git本地文件误删除怎么恢复

1.执行git reflog 2. 找到你需要找回的文件 git reset HEAD@{23}  HEAD@{23} :对应提交的id 3.执行git stash 恢复成功!!!...

把tomcat设置为服务启动不了

将tomcat设置为服务   service.bat install tomcat7.0 卸载tomcat服务  service.bat  remove tomcat7.0   方法...

java接口和抽象类的异同,什么时候该用接口什么时候该用抽象类

相同点: 1、都不能被实例化。 2、接口的实现类和抽象类的子类只有全部实现了接口或者抽象类中的方法后才可以被实例化。 不同点: 1、接口只能定义抽象方法不能实现方法,抽象类既可以定义抽象方法,也可以实现方法。 2、单继承,多实现。接口可...

订单号重复Bug

解决思路: 使用UUID(在第一次生成订单号时初始化一个) 使用redis记录一个增长ID 使用数据库表维护一个增长ID 应用所在的网络IP 应用所在的端口号 使用第三方算...

maven创建ssm框架的pom.xml文件配置

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi...