- 博客(24)
- 资源 (6)
- 收藏
- 关注
原创 【Java多线程】(拓展1) Java Util Concurrent (JUC)
随着多核处理器的普及,单一线程的性能已无法满足现代应用程序的需求。JUC 旨在简化多线程编程,提高程序的并发性能,使开发人员能够更容易地实现高效的并发应用。JUC 提供了更高级的工具,如线程池、并发集合和同步工具类,帮助开发者高效地处理并发问题。包提供了一系列的原子类,用于在多线程环境中实现安全的变量更新。用于控制对某个资源的访问数量,可以限制同时访问某个资源的线程数量。允许多个线程同时读,但写操作是互斥的,适合读多写少的场景。的一个子接口,提供了更丰富的方法来管理和控制线程。
2024-10-30 10:28:34
691
1
原创 【Java多线程】10 Java 并发编程的最佳实践
通过将对象的状态设为不可更改,可以避免数据竞争和不一致的状态。使用线程池时,合理配置线程池的大小,可以有效提高并发性能。根据任务的性质和系统的资源状况来选择合适的线程池类型(如固定大小、可缓存等)。通过分析 CPU 和内存的使用情况、线程的活跃度等,找出性能瓶颈并进行优化。Java 提供了丰富的并发工具和类,尽量使用这些已有的并发类,而不是自己实现复杂的同步逻辑。长时间持有锁会降低并发性能,尽量将锁的持有时间缩短,避免在持有锁时执行耗时操作。在设计并发系统时,选择合适的锁策略非常重要。
2024-10-30 10:10:39
955
原创 【Java多线程】9 Java 的并发性能优化
通过合理的设计和有效的策略,我们可以优化并发程序的性能,提高系统的响应速度和吞吐量。理解并应用这些优化技巧,将使我们能够更高效地编写高性能的并发应用。通过合理的设计和有效的策略,我们可以提高系统的响应速度和吞吐量。以下是一些常用的并发性能优化技巧。锁的粒度指的是被锁住的代码范围。较小的锁粒度可以减少锁争用,提高并发性能。在多线程设计中,选择合适的线程模型能够提高系统性能。持有锁的时间越短,竞争的机会越小,因此减少锁的持有时间是优化的关键。,总结一些在实际开发中应遵循的最佳实践和建议。
2024-10-30 10:06:57
762
原创 【Java多线程】8 Java 中的并发设计模式
通常,生产者会把数据放入一个共享队列中,而消费者则从这个队列中取出数据进行处理。在并发编程中,使用设计模式可以帮助我们更好地组织代码,提升可读性和可维护性。了解这些并发设计模式及其在 Java 中的实现,将使我们能够更高效地编写并发程序。在并发编程中,设计模式可以帮助我们更好地组织代码,提高可读性和可维护性。在并发环境中,如果有大量线程只读数据而很少写入,可以使用读写锁模式来提高性能。提供了异步编程的能力,允许我们在任务完成时执行某些操作,而不需要阻塞主线程。任务调度模式允许我们定期执行某些任务。
2024-10-30 10:06:24
636
原创 【Java多线程】7 Java 的并发集合
Java 的并发集合提供了多种高效、安全的集合类,以支持在多线程环境下的数据共享和管理。了解这些集合类的特性和使用场景,能够帮助我们更好地开发并发应用。这些集合类为多线程环境下的数据共享和管理提供了安全的解决方案。相比于传统的集合类,它们支持更高效的并发操作,避免了显式的同步。是一个支持阻塞操作的队列接口,允许多个线程安全地操作队列。它的主要特点是在修改操作时,会创建一个新的数组副本,从而保证读操作的安全。是一个线程安全的哈希表,支持高并发的读写操作。,包括一些常见的设计模式及其在并发编程中的应用。
2024-10-30 10:05:37
345
原创 【Java多线程】6 Java 中的线程池
想让你的 Java 程序飞起来吗?线程池是提升多线程性能的秘密武器!不再为频繁创建和销毁线程而烦恼,轻松实现线程复用和资源高效利用!快来看看如何巧妙运用 Java 的线程池,成为多线程编程的高手吧!
2024-10-30 10:04:27
379
原创 【Java多线程】5 Java中的并发工具
🔍 掌握多线程编程的秘密武器! 💪 在 Java 的并发工具世界中,`Lock`、`Semaphore`、`CountDownLatch` 和 `CyclicBarrier` 让你摆脱传统的同步限制,轻松管理复杂的多线程环境。想要提升代码的性能和安全性吗?快来深入学习这些强大的工具,让你的多线程程序更高效、更安全!🚀
2024-10-30 10:03:27
434
原创 【Java多线程】4 线程同步
多线程开发中最难的部分就是线程同步!如何防止数据错乱、避免线程死锁?本文从基础概念到高级技术,手把手带你搞定 Java 线程同步,让你快速进阶并发编程高手!
2024-10-30 10:01:55
444
原创 【Java多线程】3 线程的生命周期和状态
🌀 线程的世界,复杂而神秘! 你是否想了解 Java 中线程的生命周期和状态?快来探索线程从新建到终止的每一个阶段!掌握线程的各种状态,让你的多线程应用更加高效和稳定。点击进入,解锁多线程编程的无限可能!💻✨
2024-10-30 09:51:02
442
原创 【Java多线程】2 Java中的线程创建
Java 多线程编程难吗?其实不难!掌握三种创建线程的方法,轻松玩转并发编程!从 Thread、Runnable 到 Callable,每种方式都各具优势,适合不同场景。更有清晰的代码示例,带你快速上手,直击开发痛点。入门到精通,一篇搞定!
2024-10-30 09:40:12
474
原创 【Java多线程】1 多线程的基本概念
你知道进程和线程究竟有啥不同吗?为什么一个像独立的“工厂”,另一个像工厂里的“工人”?进程和线程的切换、通信、性能如何影响程序表现?多线程的优势如何让你的程序飞速运转?这篇带你从头到尾、透彻解析!不再被多线程搞晕,立即阅读开启Java多线程入门的第一步! 🚀
2024-10-30 09:32:12
821
原创 【Java多线程】从小白到精通,进阶之路全掌握!
🚀 Java多线程编程全解析:从小白到大牛的进阶之路! 🚀带你深入解密多线程编程,搞懂线程创建、生命周期、同步锁、线程池、并发集合、内存模型和经典设计模式,让Java性能飙升、效率更高。轻松掌握JUC编程,用多线程的力量让代码如虎添翼!想成为多线程编程高手?点击立刻开启进阶之路!👊
2024-10-30 09:19:03
1133
原创 Java异步神器CompletableFuture
为了解决 Future 的局限性,JDK1.8引入了 CompletableFuture,它是 Future 的扩展,实现了 Future 接口的功能,并且实现了 CompletionStage 接口,定义了任务编排的方法,可以向下执行后续阶段。CompletableFuture 最大的改进是提供了类似观察者模式的回调监听功能,当上一阶段任务执行结束后,可以回调指定的下一阶段任务,而不需要阻塞等待结果。提供异常管理机制,可以抛出、管理异步任务执行中的异常,监听异常发生;异步函数式编程,实现优雅易维护;
2024-02-18 14:19:55
577
1
原创 Cron表达式详细用法
Cron表达式详细用法Cron表达式的格式秒分钟小时日期星期年份特殊字符表达式举例Cron表达式的格式Cron表达式的长度为6或7位,其中第7位年份可省略,表示每年。这7位分别对应:{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}字段允许值允许字符秒0-59, - * /分0-59, - * /小时0-23, - * /日期1-31, - * ? / L W C月份1-12 或 JAN-DEC, -
2021-11-18 11:21:08
7680
1
原创 【windows-技术】windows谷歌浏览器Chrome截长图方法
步骤在谷歌浏览器打开你要截长图的页面按F12Ctrl+Shift+P输入:Capture full size screenshot进行全屏截图完成截图,但是我们发现不是我们想要的截长图效果这时候我们需要调整页面显示的长宽,主要是长度,进行拉伸调整长度为3100,再次Ctrl+Shift+P输入Capture full size screenshot效果如下我再用看图软件对长图边框进行裁剪,最终效果如下最后根据需求自己进行微调即可。没有比上述方法更方便的windows截长图方
2021-05-21 10:35:32
686
原创 【JS-BUG】JS自动裁剪16位以上的int
1、问题今天遇到个神奇的问题,后端传给前端值为xxxxxxxxxxxxxx0001(一共18位,最后一位为1),经过前端处理再传到后端时,接收到的值为xxxxxxxxxxxxxx0000(还是18位,但是最后一位由1变成了0),就很奇怪,这是什么鬼?2、原因查了挺多资料发现原来是js数字最长为16位,xxxxxxxxxxxxxx0001是18位,所以最后两位自动裁剪变为了03、办法解决方法也很简单,只要在Java后台传数值时,将其变为String类型的即可。原来的前端代码<inpu
2021-05-20 14:50:28
520
原创 【JS-技术】前端页面前进、后退、刷新
<input type=button value=前进 onclick="window.history.go(1)"><input type=button value=前进 onclick="window.history.forward()"><input type=button value=后退 onclick="window.history.go(-1)"><input type=button value=后退 onclick="window.his
2021-05-20 14:41:56
719
原创 【MySQL-技术】MySQL数据库自动添加创建时间、更新时间(超详细版)
【Mysql-技术】Mysql数据库自动添加创建时间、更新时间1、Mysql5.7及以上版本方法create table test( id integer not null auto_increment primary key, name varchar(20) not null , created timestamp not null default CURRENT_TIMESTAMP, updated timestamp not null default CURRENT_TIMEST
2021-05-20 14:12:52
39059
9
原创 SSM整合 01 基础框架
SSM-CRUD一、项目准备1、功能点2、技术点3、环境4、设计流程5、创建数据库二、创建项目1、创建Maven工程2、导入Jar包一、项目准备1、功能点分页数据校验(jquery前端校验+JSR303后端校验)ajaxRest风格的URI; 使用HTTP协议请求方式的动词,来表示对资源的操作(GET (查询),POST (新增),PUT (修改),DELETE(删除) )2、技术点基础框架-ssm (SpringMVC+Spring+MyBatis )数据库-MySQL前端框
2020-06-11 16:20:52
395
原创 SpringBoot 04 Web开发
SpringBoot的Web开发一、SpringBoot的Web开发1、简介2、SpringBoot对静态资源的映射规则2-1 所有 /webjars/** ,都去 classpath:/META-INF/resources/webjars/ 找资源;2-2 "/**" 访问当前项目的任何资源,都去(静态资源的文件夹)找映射2-3 欢迎页; 静态资源文件夹下的所有index.html页面;被"/**"映射;2-4 所有的 **/favicon.ico 都是在静态资源文件下找3、thymeleaf一、Sp
2020-06-03 14:45:30
165
原创 SpringBoot 03 日志
SpringBoot日志1、日志框架2、SLF4J具体实现3、统一使用slf4j1、日志框架左边选-一个门面(抽象层)、右边来选一个实现;日志门面: SLF4J ;日志实现: Logback ;SpringBoot :底层是Spring框架, Spring框架默认是用JCL ;’SpringBoot选用SLF4j和logback ;2、SLF4J具体实现3、统一使用slf4j如何让系统中所有的日志都统一-到sIf4j ;1、将系统中其他日志框架先排除出去;2、用中间包来替换原有的日
2020-05-28 15:10:40
347
原创 Spring Boot 02 配置文件
目录1、配置文件2、yml2-1 yml简介2-2 yml语法2-2-1 基本语法2-2-2 不同数据格式的表示方式(1)普通数据值(数字,字符串,布尔)(2)对象、Map(属性:值、键:值)(3)数组、Set2-2-3 yml格式练习3、两种获取配置文件信息的方式3-1 @ConfigurationProperties注解3-2 @Value注解3-3 两种注入方式对比3-4 @Value注入复杂封装类型4、@PropertySource和@ImportResource4-1 @PropertySourc
2020-05-24 15:25:23
259
原创 SpringBoot 01 入门
SpringBoot 01 入门1、SpringBoot简介2、微服务3、SpringBoot的IDEA配置3-1 约束环境3-2 MAVEN配置3-3 配置IDEA使用本地maven仓库4、SpringBoot HelloWorld!4-1 创建maven工程4-2 创建项目4-3 启动运行效果4-4 SpringBoot打包成jar包,简化部署tips:jar包和war包的区别5、HelloWorld探究5-1 maven依赖版本仲裁5-2 spring依赖启动器5-3 SpringbootAppli
2020-05-19 16:40:52
231
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人