- 博客(13)
- 资源 (6)
- 收藏
- 关注
原创 java高并发程序设计学习笔记十一jetty分析
Jetty吞吐量高性能服务器Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。Jetty目前的是一个比较被
2017-10-28 23:09:02 497
原创 java高并发程序设计十并发调试和JDK8新特性
多线程调试方法:使用eclipse的debugger,设置多线程的调试条件等,观察;线程dump及分析:使用jps;jstack pid;jstack -l pid;查看dump日志;JDK8对并发的新支持:LongAdder累加器,类似AtomicInteger的使用方法;在AtomicInteger上进行了热电分离;add(long x),inc
2017-10-28 15:58:18 371
原创 java高并发程序设计学习笔记九锁的优化和注意事项
锁优化的思路和方法:减少锁持有时间:减少其他线程等待时间,只同步需要同步的相关的代码;减少锁粒度:将大对象拆成小对象,增加并行度,降低锁竞争;偏向锁,轻量级锁成功率提高;ConcurrentHashMap;锁分离:根据功能进行锁分离;ReadWriteLock;读多写少的情况,可提高性能;读写分离思想延伸,只要操作互不影响,锁就可以分离;Linked
2017-10-28 11:45:18 216
原创 java高并发程序设计学习笔记八BIO、NIO和AIO
什么事NIO?New I/O简称,与旧式的基于流的I/O方法相对,表示一套新的I/O标准;jdk1.4引入的;NIO是基于块(Block)的,以块为基本单位处理数据,传统I/O基于字节(Byte)的;性能比流好些;为所有原始类型提供(Buffer)缓存支持;增加通道(Channel)对象,作为新的I/O抽象,类似旧式的Stream;支持文件锁,和内存映射文件的文件访问接口;使用
2017-10-26 22:03:49 240
原创 java高并发程序设计学习笔记七并发设计模式
一、什么是设计模式在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。《 设计模式:可复用面向对象软件的基础》 收录 23种模式:观察者模式 、策略模式 、装饰者模式 、享元模式 、模板方法 架构模式:M
2017-10-23 22:36:59 222
原创 WEB安全测试要点总结
一、大类检查点:大类细项上传功能绕过文件上传检查功能上传文件大小和次数限制注册功能注册请求是否安全传输注册时密码复杂度是否后台检验激活链接测试重复注册批量注册问题登录功能
2017-10-23 19:27:09 26946 5
原创 java高并发程序设计学习笔记五六JDK并发包
1、各种同步控制工具的使用1.1 ReentrantLock它是synchronized的增强版,sync功能简单,把多余的线程放入等待区,这些线程只能死等;写法上有区别;synchronized也是可重入的(它拥有强制原子性的内置锁机制,是一个重入锁,所以在使用synchronized时,当一个线程请求得到一个对象锁后再次请求此对象锁,可以再次得到该对象锁,就是说在一个synchroni
2017-10-17 22:11:58 274
原创 java高并发程序设计学习笔记四无锁
1、无锁类的原理详解1.1 CASCAS算法的过程是这样:它包含3个参数CAS(V,E,N)。V表示要更新的变量,E表示预期值,N表示新值。仅当V值等于E值时,才会将V的值设为N。如果V值和E值不同,则说明已经有其他线程做了更新,则当前线程什么都不做。最后,CAS返回当前V的真实值。CAS操作是抱着乐观的态度进行的,它总是认为自己可以成功完成操作。当多个线程同时使用CAS操作一
2017-10-17 21:51:53 181
原创 java高并发程序设计学习笔记三内存模型线程安全
1、原子性原子性是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其它线程干扰。 CPU指令一般认为是原子操作。i++ 不是原子操作!它至少包含两个操作,一个是读,一个是++计算操作,一个将数据再写回i中。32位操作系统读long型数据不是原子操作,读32位整形是原子操作。2、有序性计算机在执行你的代码时,不一定按你写的顺序执行。一条指
2017-10-16 22:34:26 258
原创 jstack使用和线程堆栈dump分析
查看java进程的pid:查看并dump出线程堆栈信息,在DOS窗口中显示:或者直接将日志信息输出到文件(管理员身份):-l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况-m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法)
2017-10-15 21:06:15 8730
原创 java高并发程序设计学习笔记二多线程基础
一、什么是线程一个进程可包含多个线程;进程是重量级的,开关比较消耗资源;windows中可指定进程的线程分配到哪个CPU上执行;二、线程的基本操作1、几种状态:new - runnable(供物理CPU调度执行)- terminated - blocked - waiting - timed waiting2、创建线程两种方式:继承Thread类;实现Runnable接口3、T
2017-10-15 12:55:10 206
原创 java高并发程序设计学习笔记一前言
一、前言1、为什么需要并行?-业务需求(业务上需要一个逻辑单元,多个线程并行执行,例如JVM虚拟机;GC线程、main线程、业务线程等);-性能(本课程主要探讨原因,多线程性能更好,是相对的;在多核CPU上确实性能很好,服务端编程提高性能);并行代码比串行代码复杂很多;Linus torvalids:并行计算主要在图像处理和服务端编程2个领域使用;-摩尔定律失效:预计18个
2017-10-15 11:27:07 269
转载 linux查找所有文件中某个字符串
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l (1)find命令的一般形式 find pathname -options [-print -exec -ok] pa
2017-10-14 21:21:38 17215
centos7&&gcc&&g++离线安装包-亲测可用.zip
2020-06-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人