计忆芳华
计忆芳华
全部文章
# 多线程学习
# HashMap源码学习(7)
# Java高频面试题(5)
# JVM学习(10)
# Leetcode(20)
# String源码学习(1)
# 设计模式学习(25)
docker学习(12)
ElasticSearch学习(4)
hadoop(7)
Java面向面试编程(5)
mongdb学习(5)
pytnon(5)
redis学习(2)
Springcolud(8)
云开发(7)
大数据学习(19)
未归档(3)
杂七杂八(7)
比赛(1)
算法(1)
编译原理(10)
自建博客(30)
软件工程(1)
软件测试(12)
阿里(9)
归档
标签
去牛客网
登录
/
注册
计忆芳华
2017年入坑,爱学习,个人博客jiyifh.top
全部文章
/ # 多线程学习
(共10篇)
多线程 三种创建方式及区别
线程概念 进程:启动一个程序就是一个进程。 线程:在一个程序里面,多个事情同步进行,这个事情是由线程来完成 不使用多线程的效果 如果我们不使用线程,会怎么样呢?看下面代码 新建立一个hero类包含英雄的name,血量,攻击力,内置一个攻击方法 package charactor;...
2020-08-15
0
483
多线程 实现同步文件查找(单线程,多线程,线程池三种方案查询时间对比)
用java实现文件查找,我们用多线程与单线程实现,对比一下使用多线程的区别 单线程 假设你的项目目录是 e:/project,遍历这个目录下所有的java文件(包括子文件夹),找出文件内容包括 Magic的那些文件,并打印出来。 { /** * @param file 查...
2020-08-15
0
852
多线程 常见的线程方法
sleep()线程暂停 Thread.sleep(1000); 表示当前线程暂停1000毫秒 ,其他线程不受影响 Thread.sleep(1000); 会抛出InterruptedException 中断异常,因为当前线程sleep的时候,有可能被停止,这时就会抛出 InterruptedExc...
2020-08-15
0
897
多线程 java编写穷举法破解字符串密码
生成一个长度是3的随机字符串,把这个字符串当作 密码 创建一个破解线程,使用穷举法,匹配这个密码 创建一个日志线程,打印都用过哪些字符串去匹配,这个日志线程设计为守护线程 提示: 破解线程把穷举法生成的可能密码放在一个容器中,日志线程不断的从这个容器中拿出可能密码,并打印出来...
2020-08-15
0
1023
多线程 synchronized 同步解决脏数据问题
多线程的同步问题指的是多个线程同时修改一个数据的时候,可能导致的问题 多线程的问题,又叫Concurrency 问题 演示Concurrency 问题 假设盖伦有10000滴血,并且在基地里,同时又被对方多个英雄攻击,就是有多个线程在减少盖伦的hp,同时又有多个线程在恢复盖伦的hp ,假设线...
2020-08-15
0
561
多线程 面试会问到的线程安全类
1. HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式 区别1: HashMap可以存放 null,Hashtable不能存放null 区别2: HashMap不是线程安全的类,Hashtable是线程安全的类 2. St...
2020-08-15
0
428
多线程 使用wait和notify进行线程交互
线程之间有交互通知的需求,考虑如下情况: 有两个线程,处理同一个英雄。 一个加血,一个减血。 减血的线程,发现血量=1,就停止减血,直到加血的线程为英雄加了血,才可以继续减血 不使用wait和notify的解决方式 故意设计减血线程频率更高,盖伦的血量迟早会到达1 减血线程中使用while循...
2020-08-15
0
466
多线程 自己开发一个线程池
每一个线程的启动和结束都是比较消耗时间和占用资源的。 如果在系统中用到了很多的线程,大量的启动和结束动作会导致系统的性能变卡,响应变慢。 为了解决这个问题,引入线程池这种设计思想。 线程池的模式很像生产者消费者模式,消费的对象是一个一个的能够运行的任务 线程池的思路 线程池的思路和生产者消费...
2020-08-15
0
528
多线程 LOCK对象同步解决死锁
与synchronized类似的,lock也能够达到同步的效果,在说LOCK对象时,先来说一下synchronized 同步的方式。 synchronized 同步的方式 首先说一下synchronized 同步对象的方式 当一个线程占用 synchronized 同步对象,其他线程就不能占...
2020-08-15
0
477
多线程 死锁的产生以及解决方案
当业务比较复杂,多线程应用里有可能会发生死锁 死锁产生的原因 线程1 首先占有对象1,接着试图占有对象2 线程2 首先占有对象2,接着试图占有对象1 线程1 等待线程2释放对象2 与此同时,线程2等待线程1释放对象1 就会。。。一直等待下去,直到永远循环下去。 代码...
2020-08-15
0
624