1.问题 最近在写一个熔断的 SDK,其中一种策略是根据慢请求来进行熔断. 我们在测试的时候,在对应 API 里面采用了 Thread.Sleep(ms) 来模拟慢请求. 设置的慢请求阈值是 RT 100ms,我们设置了 Thread.Sleep(90ms),但是发现竟然触发了熔断.最近分析发现是 Thread.Sleep 并不精准,在测试机器上偏差最大超过了 10ms,在我自己的电脑上偏差最大 5ms. 为什么会这样呢?"因为Thread.Sleep保证的是至少休眠指定的值"(来自时…
9.1今天不知道自己瞎搞eclipse的时候按到了什么键,然后再启动程序的时候就会报错: 如下: Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main"(溢出内存错误) 解决方案: 然后就发现自己原来设置扩大堆内存的没有了,要重新设置 如图: 重新启动项目,OK解决了!!哈哈哈…
问题描述: Exception in thread ""http-bio-80"-exec-1" java.lang.OutOfMemoryError: PermGen sException in thread ""http-bio-80"-exec-1" java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native…
并发 1. 并发和并行 并发:两个或多个任务在同一时间段内运行.关注点在任务分割. 并行:两个或多个任务在同一时刻同时运行.关注点在同时执行. 本文大多数情况下不会严格区分这两个概念,默认并发就是指并行机制下的并发. 2. 好处 随着多核处理器的出现,并发编程可以提高程序的性能(吞吐量和响应能力). 3. 并发实现方式 共享内存模型 因为并发能提高程序的性能,为了解决并发的需求,许多编程语言提供了共享内存通信机制(本文称为共享内存模型),体现是引入了Thread(线程)等概念.线程的出现解决了两…
调用System.gc没有立即执行的解决方法 查看源码 当我们调用System.gc()的时候,其实并不会马上进行垃圾回收,甚至不一定会执行垃圾回收,查看系统源码可以看到 /** * Indicates to the VM that it would be a good time to run the * garbage collector. Note that this is a hint only. There is no guarantee * that the garbage colle…
# 20175126 2016-2017-2 <Java程序设计>第八周学习总结 ## 教材学习内容总结 - 本周学习方式主要为手动敲代码并理解内容学习. - 学习内容为教材第十五章,本章主要学习的Java里关于数据的处理等知识,主要介绍了泛型和常见数据结构类的用法. - 第十五章主要内容有:泛型.链表.堆栈.散列映射.树集.树映射.自动装箱与拆箱等 ## 代码调试中的问题和解决过程 - 问题1:出现:使用未经检查或不安全的的操作   -  - 问题1解决方案: - 类前面加@Suppress…
https://blog.csdn.net/zhu_tianwei/article/details/80169900 redis自2.8.0之后版本提供Keyspace Notifications功能,允许客户订阅Pub / Sub频道,以便以某种方式接收影响Redis数据集的事件. 可能收到的事件的例子如下: 所有影响给定键的命令. 所有接收LPUSH操作的密钥. 所有密钥在数据库中过期0. 因为 Redis 目前的订阅与发布功能采取的是发送即忘(fire and forget)策略, 所以如…
20155318 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 学习目标 理解流与IO 理解InputStream/OutPutStream的继承架构 理解Reader/Writer继承架构 会使用装饰类 InputStream和OutputStream 发生错误时返回`java.io.IOException异常,所以表示为 public static void dump(InputStream src, OutputStream dest) throws IO…
1.  问题描述 最近使用ABP .Net Core框架做一个微信开发,同时采用了一个微信开发框架集成到ABP,在微信用户关注的推送事件里调用了一个async 方法,由于没有返回值,也没做任何处理,本地调试也OK,但一发布到线上就有问题,微信公众号关注成功,也有推送消息过来,但微信用户一直保存不上,查看日志会有个异常信息: System.NotSupportedException: A second operation started on this context before a previ…
现象如下:   Tomcat7启动后,后台抛出如下异常,前台一直无法登陆   Exception in thread ""http-bio-8080"-exec-6" java.lang.OutOfMemoryError: PermGen spaceException in thread ""http-bio-8080"-exec-9" java.lang.OutOfMemoryError: PermGen spaceExce…
现象如下: Tomcat7启动后,后台抛出如下异常,前台一直无法登陆Exception in thread ""http-bio-8080"-exec-6" java.lang.OutOfMemoryError: PermGen space Exception in thread ""http-bio-8080"-exec-9" java.lang.OutOfMemoryError: PermGen space Excepti…
什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在Python无法正常处理程序时就会发生一个异常. 异常是Python对象,表示一个错误. 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行. 异常处理 捕捉异常可以使用try / except语句. try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理. 如果你不想在异常发生时结束你的程序,只需在try里捕获它. 以下为简单的try...…
最近一个运行了4年的javaee web项目,经常接到客户反馈系统无法打开.登录服务器查看服务,发现是tomcat自动关闭了.基本是3到4天发生一次. 运维人员开始以为是其他服务杀死了tomcat服务,没放在心上,解决方法就是直接重启tomcat. 最终捅了篓子,运维人员被客户投诉,扣了一个月的绩效. 解决这个bug兜兜转转来到了我这里.既然接到任务,那就开干,没有解决不了的bug. 系统的运行环境如下: tomcat6.0 32位jdk7.0 window server2003 32位,32G…
勿止于结论:持续探索与求证. 概述 为什么要使用并发 ? 有三点足够信服的理由: 性能提升.单核 CPU 的性能基本抵达瓶颈,充分挖掘多核 CPU 的能力,使得性能提升变成水平可扩展的. 事件本质.世界的事件本质上是并行和并发进行的. 响应灵敏.为了构建响应更敏捷的应用,需要异步化处理,并发必不可少. 不过,并发使用姿势不当,很容易出错,导致难以估量的损失.可谓是一把双刃剑. 最近,团队有同学踩了并发的坑.我想,要不梳理下并发的一些陷阱及相关原理和解决方案吧,以备后用. 何时使用并发 并不是在所…
解决方案1: 可以利用redis天然的key自动过期机制,下单时将订单id写入redis,过期时间30分钟,30分钟后检查订单状态,如果未支付,则进行处理但是key过期了redis有通知吗?答案是肯定的. 开启redis key过期提醒 修改redis相关事件配置.找到redis配置文件redis.conf,查看“notify-keyspace-events”的配置项,如果没有,添加“notify-keyspace-events Ex”,如果有值,添加Ex,相关参数说明如下: K:keyspac…
Mariadb数据库集群 mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定的延迟性,也就是说可能会导致数据丢失,但是性能比较好,因此网站大多数 用的是主从架构的数据库,读写分离必须基于主从架构来搭建. 异步:提高效率,但是数据的安全性没有保证. 同步:安全性高,但是效率不高 增删改不多的情况下可以去使用主主架构.主主——预防单点故障. 主从架构 一主多从.一主一从. Master建立数据库账号——slave利用这个账号访问master的二进制文件,监控binl…
报错信息: com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112) ~[eureka-client-1.9.…
一挂就报内存溢出 下面是TOMCAT日志 JAVA程序是没有报错, Nov 24, 2009 4:07:02 PM org.apache.catalina.core.ApplicationDispatcher invoke SEVERE: Servlet.service() for servlet jsp threw exception java.lang.OutOfMemoryError: PermGen space Nov 24, 2009 4:07:02 PM org.apache.cat…
2020年中国实体商业受到突发疫情的重大影响.以危机为契机,实体商业加速数字化转型,利用创新应用服务自身业务.在此阶段,基于Re-ID(Person Re-identification,即行人再识别)的新一代客流分析系统正在实体商业领域逐步推广. 一部分实体商业率先部署Re-ID客流分析系统,用以重新定义.评估人店场,通过数据驱动并改善自身的经营策略.正如<汇客云中国实体商业客流桔皮书>中所提到的"Re-ID可以记录顾客特征.顾客游逛轨迹等数据.这些数据可以帮助购物中心更加高效.精准…
我在之前一篇博文<漫谈C++11 Thread库之使写多线程程序>中,着重介绍了<thread>头文件中的std::thread类以及其上的一些基本操作,至此我们动手写多线程程序已经基本没有问题了.但是,单线程的那些"坑"我们仍还不知道怎么去避免. 多线程存在的问题 多线程最主要的问题就是共享数据带来的问题.如果共享数据都是只读的,那么没问题,因为只读操作不会影响到数据,更不会涉及对数据的修改,所以所有线程都会获得同样的数据.但是,当一个或多个线程要修改共享数据…
java并发的学习从去年就已经中断了,之前只对于java并发的一些基础进行了一些巩固,对于这个硬技能不管是对于面试还是对于日常的实际开发来说都非常之重要,所以接下来给自己重新定一个新目标,准备重拾它一步一个脚印从易到难彻底的将Java并发所涉及的方方面面进行一个深入的学习,向着“精通”的程度来努力,当然要想达到此目标肯定得把自己扒一层皮,不可能这么轻松的,所以贵在坚持! Thread: "万丈高楼平地起",为了达到“精通”的目标,肯定还得从基础一点点开始,虽说是比较枯燥,但是这是让自己…
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面大致的了解了Thread的一些方法和属性下面对一些方法进行运用看看具体效果<下面可能还是会贴很多的源代码,其实我是拒绝的,我只想贴每个方法的代码,但是有时候看到一个方法里面有调用了方法,但是笔者有没有给出来,很蛋疼,有种爽到一半的感觉,所以我还是会把它贴出来,希望一次就能挖到底,不论有没有全懂,但至…
测试在进行一次性能测试的时候发现并发300个请求时出现了下面的异常: HTTP Status 500 - Handler processing failed; nested exception is java.lang.OutOfMemoryError: unable to create new native thread 看到这个异常有点发慌,毕竟并发程序写的少,突然来这么一个确实有点找不着背.但不管怎么样还是先搜索一下是啥原因吧. 这个错误是因为无法再创建新线程导致的,原因可能是没有更多的空…
多线程:(百度百科借一波定义) 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能.具有这种能力的系统包括对称多处理机.多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneous multithreading)处理器. 在一个程序中,这些独立运行的程序片段叫作"线程"(Thread),利用它编程…
学习架构探险,从零开始写Java Web框架时,在学习到springAOP时遇到一个异常: "C:\Program Files\Java\jdk1.7.0_40\bin\java" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=D:\JetBrains\xxIntelliJ IDEA 2016.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program F…
在学习CGlib动态代理时,遇到如下错误: Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V 经过百度上寻找答案,是jar包冲突导致,解决方案: 把cglib.jar包换成cglib-nodep-2.2.jar,便可以解决这个错误: cglib-nodep-2.2.jar文件下载路径:http://files.cnblogs.com…
本文将要提到的线程及其相关内容,均是指 Windows 操作系统中的线程,不涉及其它操作系统. 文章索引 核心概念 Thread.Yeild       Thread.Sleep(0) Thread.Sleep(1) 实验告诉你:单一线程 实验告诉你:多线程(同优先级) 实验告诉你:多线程(不同优先级) 本人观点 参考资源 在进入正文前,有几个知识点需要大家在阅读前有所了解. 核心概念 优先级调度算法 处理器是一个操作系统执行任务的工具,线程是一个操作系统执行任务的基本单位,处理器的数量决定了不…
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限. 下面看例子: package org.thread.demo; class MyThread extends Thread{ private String name; public MyThread(String name)…
Java Thread 的使用 Java Thread 的 run() 与 start() 的区别 Java Thread 的 sleep() 和 wait() 的区别       1. sleep 和 wait 方法解释 sleep()方法是Thread类里面的,主要的意义就是让当前线程停止执行,让出cpu给其他的线程,但是不会释放对象锁资源以及监控的状态,当指定的时间到了之后又会自动恢复运行状态. wait()方法是Object类里面的,主要的意义就是让线程放弃当前的对象的锁,进入等待此对象…