多线程完成煮饭吃饭问题

2021-12-08
阅读 3 分钟
1.1k
问题:请用多线程基本知识完成两种情况下的煮饭、准备菜(买菜、洗菜)、炒菜、开始吃饭的功能。1、准备菜(买菜、洗菜):1秒,炒菜:2秒,煮饭:5秒 2、准备菜(买菜、洗菜):1秒,炒菜:8秒,煮饭:5秒。说明:只有煮饭完成、准备菜、炒菜完成,才能开始吃饭,两种情况下,在尽量短的时间内完成所有动作。

多线程实现火车票贩卖

2021-11-28
阅读 4 分钟
1.2k
使用三种方法实现: (1)基于runnable atomicInteger (2)基于runnable synchronized (3)基于runnable reentrantlock

线程顺序执行测试

2021-10-31
阅读 2 分钟
855
测试小案例:实现线程的顺序执行 方案:(1)使用countdownlatch方式 (2)使用thread与join方式实现 第一种方案 {代码...} {代码...} 第二种方案 {代码...} {代码...} GITHUB

多人多轮次抽奖

2021-10-24
阅读 4 分钟
1.2k
难点: 实现抽奖奖品的唯一性 解决方案: 由于涉及到奖品结果的返回,使用callable,由于涉及到奖品的唯一性,使用synchronized实现唯一性。 代码: 抽奖线程

存款取款数据一致性小案例

2021-10-18
阅读 8 分钟
987
问题:开户为10000,其中张三隔一段时间会存入100,李四会隔一段时间进行取款100,王五会过一段时间取款200,存入金额不能超过20000,当取款为0时,停止,如何保证该阶段的数据一致性问题 解决方案:将开户金额设置为atomic原子类,同时取款存款设置为synchronized即可解决该问题

十一种方法实现亿级数据++

2021-09-04
阅读 12 分钟
1k
项目需求:实现多线程达到数据的亿级自增,并且尽可能让时间缩短 ,要求: (1)速度要快 (2)安全性要高 第1种方式 {代码...} 耗费时间如下: 第2种方式 {代码...} 耗费时间如下: 第3种方式 {代码...} 耗费时间如下: 第4种方式 {代码...} 耗费时间如下: 第5种方式 {代码...} 耗费时间如下: 第6种方式 {代码...} 耗费时...

死锁简要概述

2021-08-21
阅读 3 分钟
755
上述程序都体现一个特点: 存在两个线程,出现我使用这当前的资源, 申请对方正在使用的资源,而对方尚未释放该资源导致线程阻塞。查找线程死锁的办法:jps + jstack首先在终端输入jps,查找到对应的死锁进程号:

百万数据秒级导出

2021-08-13
阅读 3 分钟
3.4k
项目模拟一百万的数据导出,要求10s内实现全部数据导出,项目使用springboot + mysql + mybatis + poi。 项目核心思想 数据分页 + 线程池 采用线程池和数据分页的原因:在于数据导出涉及IO操作,不采用线程池的话,串行耗时较长,同时数据量较大,不对数据进行分页处理,可能会产生内存溢出。 数据来源:百万数据插入

百万数据模拟插入数据库

2021-08-07
阅读 13 分钟
1.6k
模拟出300万的数量插入数据库,主要思想是通过线程池和atomic来实现,借鉴分片思维。先快速过基本的配置。数据库 {代码...} pom.xml {代码...} application.yml(其中数据库密码和ip自己配置) {代码...} 用户实体类 {代码...} usermapper {代码...} usermapper.xml {代码...} 用户控制层 {代码...} 接下来是最核心的代码...

synchronized基本概念

2021-07-07
阅读 9 分钟
1.2k
设计同步器的意义多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。共享:资源可以由多个线程同时访问可变:资源可以在其生命周期内被修改引出的问题:由于线程执行的过程是不可控的,所以需要采用同步机制来协同对对象可变...

jmm&volatile学习

2021-07-04
阅读 17 分钟
944
一、现代计算机理论模型与工作方式现代计算机模型是基于-冯诺依曼计算机模型计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去。...