- 博客(12)
- 收藏
- 关注
原创 JUC并发编程第六节:线程安全问题
以上的结果可能是正数、负数、零。因为 Java 中对静态变量的自增,自减并不是原子操作,要彻底理解,必须从字节码来进行分析。线程出现问题的根本原因是因为线程上下文切换,导致线程里的指令没有执行完就切换执行其它线程了。
2024-05-13 22:14:12
464
原创 JUC并发编程第五节:线程的状态
RUNNABLE 是当调用了 start() 方法之后的状态,注意,Java API 层面的 RUNNABLE 状态涵盖了操作系统层面的【可运行状态】、【运行状态】和【io阻塞状态】(由于 BIO 导致的线程阻塞,在 Java 里无法区分,仍然认为是可运行)表示线程进入等待状态,也就是线程因为某种原因放弃了CPU的使用权,阻塞也分为几种情况(当一个线程试图获取一个内部的对象锁(非java.util.concurrent库中的锁),而该锁被其他线程持有,则该线程进入阻塞状态。线程一旦终止了,就不能复生。
2024-05-13 21:21:04
736
原创 JUC并发编程第一节:进程与线程
操作系统中有一个组件叫做任务调度器,将 cpu 的时间片(windows下时间片最小约为 15 毫秒)分给不同的程序使用,只是由于 cpu 在线程间(时间片很短)的切换非常快,人类感觉是。多核 cpu下,每个 核(core) 都可以调度运行线程,这时候线程可以是并行的。一般会将这种 线程轮流使用 CPU 的做法称为并发, concurrent。并行:在同一时刻,有多个指令在多个 CPU 上同时执行。并发:在同一时刻,有多个指令在单个 CPU 上交替执行。需要等待结果返回,才能继续运行就是同步。
2024-05-08 22:14:58
700
原创 微信登录思路及代码实现
微信登录前端使用uni-app配置好微信信息,直接使用uni.login({})获取codeuni.login({ success: async res => { // 利用小程序登陆,配合code码进行用户登陆操作,并返回用户的token值 const result = await this.$u.api.getWxLogin({ code: res.code }); console.log(result,result.token,"<
2024-04-11 20:41:46
1615
1
原创 使用EasyExcel多sheet页上传
注:每个sheet页是相同格式。如何每个sheet页格式不相同,需要读取的时候单独为每个sheet页设置不同实体类读取。
2024-04-11 13:49:14
489
1
原创 使用阿里云oss存储进行图片上传实现方案及其多线程优化
2、在yml中进行配置3、代码controllerserviceimpl优化方案一创建线程池,在实现类方法上加==@Async==注解。结果:失败原因: 1. 首先前端传递过来的文件,会存储到临时文件夹中,即类似这样的一个路径。C:\Users\86189\logs\csp\upload_4330f731_2ae0_4955_a484_5862fd4530a2_00000009.tmp (系统找不到指定的文件。) 开启异步执行的时候,主线程结束,临时文件就会被清空了,子线程获取不
2024-03-23 12:49:45
788
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人