自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 什么是jvm调优

Xloggc:/opt/xxx/logs/xxx-xxx-gc-%t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCCause(参数说明:指定生成5个jvm日志文件,每个文件20M,如果日志文件都满了则干掉最早的一个文件,循环使用这5个文件;是打印GC的一些详细信息的意思)

2024-05-29 10:05:34 139

原创 java常用的垃圾回收器介绍

数据挖掘也是吞吐量优先,吞吐量优先的一般:(Parallel Scavenge +parallel Old组合的垃圾回收器)。1、Serial+Serial Old ,Serial是jdk诞生就有的,这是单线程回收,并且垃圾回收的时候应用线程会停止。3、Parallel Scavenge+Parallel Old 这是多线程回收,并且垃圾回收的时候应用线程会停止。如果使用的jdk已经是jdk1.8了,那么直接使用G1垃圾回收器即可,响应时间跟吞吐量都能达到平衡。响应时间:STW越短,响应时间越好。

2024-05-24 17:34:13 158

原创 java 多线程编程系列之6----并发编程的三大特性

因为代码System.out.println("hello test ")底层代码其实是加锁了的,加了锁就会触发线程内存数据和主内存数据之间同步刷新数据,此时running变量就变为可见了(running变量在main线程和t线程之间相互可见了)。上面代码里有两个线程1是main主线程2是t线程,每个线程运行的时候是把running变量拷贝到属于自己的线程缓存里运算,各个线程之间的变量相互不可见(此时没有volatile关键字修饰running变量)这两行代码执行的顺序是随机的,这就是乱序执行的现象。

2024-05-23 19:03:25 915

原创 java 多线程编程系列之5----如何优雅的结束线程

b. 打断时间不精准,比如一个阻塞集合,容量为1000的时候希望结束线程不要再添加,但是由于volatile同步线程标志位的时间控制的不是很精准,有可能线程还要继续跑一会儿才会停止。暂停的时候是不会释放当前线程所拥有的锁的,假如你没有继续启动resume的话就会导致死锁,所以这两个方法suspend()和resume()废弃了,最好别轻易使用。所以stop方法废弃了;的结束线程,但你很难精确的控制线程运行了多少次才结束,所以你只要不依赖线程的中间状态来判断释放结束,volatile还是比较可以的;

2024-05-23 15:54:53 745

原创 java 多线程编程系列之4----线程的“打断”

interrup不能干扰要去竞争锁的线程t2,因为t2是通过lock.lock()去抢锁的,该去拿锁还得去拿不会抛异常。所以如果你要想达到线程在等锁的时候能被干扰到你就用lock.lockInterruptibly()去枪锁,此时t2去枪锁可以被打断,这时如果线程被interrupt()了就会抛异常,然后你catch到异常了就可以做其他操作。interrupt(): 实列方法 如t.interrupt() 打断t线程,设置t线程的标志位f=true,并不是打断t线程的运行,就是告诉t线程想打断它的意思。

2024-05-23 11:15:08 273

原创 java 多线程编程系列之3----线程的状态

TIMED WAITING:等待一段时间后会结束,然后进入RUNNABLE状态,WAITING:就是盲等的意思,需要你去唤醒才能进入RUNNABLE状态,调用线程的t.yield()方法,就是暂时让出一下下cpu的时间片,但可能还会被自己抢到cpu的执行权力;上图箭头所指方向为状态迁移方向,黑实线上标注的为可触发状态迁移的方式。RUNNABLE: 可运行状态,线程调度器可以调度该线程来执行。BLOCKED: 被阻塞,正在等待锁的释放。WAITING: 等待被唤醒的状态。NEW: 线程刚刚创建,还未启动。

2024-05-22 18:48:17 203

原创 java 多线程编程系列之2----线程的创建和启动方式

这么多种启动线程的方式,其实本质上及是new 一个Tread对象,底层代码都是这样的。//这个方法是阻塞的,获取返回值。//第5.1 带返回值的线程,利用线程池来执行。//第5.2.1 带返回值的线程,利用。//第5.2 2带返回值的线程,利用。//第4 线程池的方式启动线程。//启动线程的5种方式。//第1 种启动线程。

2024-05-22 18:31:41 238

原创 java 多线程编程系列之1----线程、进程的相关概念

线程之间的切换也是消耗时间的,所以线程数的设定也是有讲究的;因为线程在运行的时候数据从cpu里的载入和载出是要花费大量的时间(相对cpu的计算时间来说这是大量的时间,因为cpu的计算非常快),所以在一个线程的数据载入载出的时候就可以切换到其他线程来执行,这就提供了效率;假如只有一个核心的cpu,并且一个线程的执行期间有50%的时间是计算,50%的时间是等待网络上的数据,这时你想充分利用cpu的资源你就可以设定2个线程,一个线程等待的时候另外一个线程就可以计算;c:线程的计算时间,比如上面的列子就是1/1。

2024-05-22 17:12:49 220

原创 maven 常用命令

install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布器到远程maven私服仓库。但没有把打好的可执行iar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。安装到本地仓库-将打包的jar文件,保存到本地仓库目录中。package命令完成了项目编译、单元测试、打包功能,打包 -jar,将java代码打包为jar文件。本地安装,包含编译,打包,安装到本地仓库。包含编译,打包两个功能。

2024-05-22 13:54:36 95

原创 Spring 声明式事务的传播特性Propagation详解

/Transactional默认的是REQUIRED,意思就是: 别的方法调用我,别的方法有事务了,我这个 //方法就不创建事务了,用前面的方法的事务,如果前面的方法没有事务,我这里就创建事务。:别的方法调用我,别的方法有事务了,我这个方法就不创建事务 //了,用前面的方法的事务,如果前面的方法没有事务,我这里就创建事务。:如果当前有事务,就挂起,创建新的事务,你没事务我这 //里也要创建新的事务。// 我这新的事务如果要回滚的时候就回滚到保存点;

2024-05-21 15:24:48 759 1

原创 spring schedule 异步定时任务开发

spring schedule 异步定时任务开发

2024-05-21 13:48:20 141

原创 spring 手动事务控制 分批提交事务

spring 手动事务控制 分批提交事务

2024-05-21 11:31:37 222

servlet用户管理系统

这是一个用servlet编写的简单的用户管理系统

2013-06-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除