最近在一家公司做java实习,写了个网络字节采集器.写了个单例TCPServer来采集数据,其中用到了InputStream.read()来读取数据.产生了一系列问题,下面做下总结: 关于while((length = is.read(data)) != -1)问题. 在写此方法时,产生了一些疑惑,read何时阻塞?何时返回值-1? 首先做个假设: 1.读不满data的length就一直阻塞.为此,做了以下实验: Server端: byte[] data = new byte[8]; while…
reference to :http://hold-on.iteye.com/blog/1017449 如果用inputStream对象的available()方法获取流中可读取的数据大小,通常我们调用这个函数是在下载文件或者对文件进行其他处理时获取文件的总大小. 以前在我们初学File和inputStream和outputStream时,有需要将文件从一个文件夹复制到另一个文件夹中,这时候我们用的就是inputStream.available()来获取文件的总大小,而且屡试不爽. 但是当我们要…
转自:http://hold-on.iteye.com/blog/1017449 如果用inputStream对象的available()方法获取流中可读取的数据大小,通常我们调用这个函数是在下载文件或者对文件进行其他处理时获取文件的总大小. 以前在我们初学File和inputStream和outputStream时,有需要将文件从一个文件夹复制到另一个文件夹中,这时候我们用的就是inputStream.available()来获取文件的总大小,而且屡试不爽. 但是当我们要从网络URL中下载一个…
背景 最近给客户做优化时,有几个客户都存在.SLEEPING 会话中开启了事务,导致的大量阻塞,从而产生严重的性能问题.虽然在之前的文章我分享了Sleeping会话导致阻塞原理(上) .说明了什么是Sleeping会话,以及他可能导致的问题.但是对如何解决问题,给出的方案,还是太简单了,没有给出解决的细节.本文将对这些细节进行说明.希望大家面对类似问题时更容易下手 下面分享2个案例,分别针对针对问题来着存储过程 和 程序 中的情况. 存储过程 以下是某医药公司的案例截图: 从图中可以看到,230…
1. 偏差与方差 - 机器学习算法泛化性能分析 在一个项目中,我们通过设计和训练得到了一个model,该model的泛化可能很好,也可能不尽如人意,其背后的决定因素是什么呢?或者说我们可以从哪些方面去改进从而使下次得到的model更加令人满意呢? ”偏差-方差分解(bias-variance decomposition)“是解释学习算法泛化能力性能的一种重要工具.偏差-方差分解试图对学习算法的期望泛化错误率进行拆解. 假设测试样本为x,yd 为 x 在数据集中的标记(注意,有可能出现噪声使得 y…
谈到阻塞,相信大家都不会陌生了.阻塞的应用场景真的多得不要不要的,比如 生产-消费模式,限流统计等等.什么 ArrayBlockingQueue, LinkedBlockingQueue, DelayQueue...  都是阻塞队列的实现啊,多简单! 阻塞,一般有两个特性很亮眼:1. 不耗cpu的等待:2. 线程安全: 额,要这么说也ok的.毕竟,我们遇到的问题,到这里就够解决了.但是有没有想过,这容器的阻塞又是如何实现的呢? 好吧,翻开源码,也很简单了:(比如ArrayBlockingQueu…
一,问题描述 搭建的用来测试的单节点Kafka集群(Zookeeper和Kafka Broker都在同一台Ubuntu上),在命令行下使用: ./bin/kafka-topics. --replication-factor --partitions --topic topicForTest 创建了一个3个分区的Topic如下:(Topic名称为 topicForTest) 使用 Console producer/consumer都能够正常地向topicForTest发送和接收消息: bin/ka…
DisplayNameFor()方法的工作原理原创Peter Yelnav 最后发布于2018-11-23 11:09:51 阅读数 1308 收藏展开最近研究了一下ASP.NET MVC,困惑于视图中DisplayNameFor()方法,于是粗略探究了一下.观点浅显,如有错误之处,还请各位大神多多指正. 完整代码可以到Microsoft Doc / ASP.NET / ASP.NET MVC中查看,链接如下:https://docs.microsoft.com/en-us/aspnet/mvc…
JVM系列-方法调用的原理 最近重新看了一些JVM方面的笔记和资料,收获颇丰,尤其解决了长久以来心中关于JVM方法管理的一些疑问.下面介绍一下JVM中有关方法调用的知识. 目的 方法调用,目的是选择方法正确的执行版本,也就是找到方法的入口地址. 方法调用指令 方法调用的字节码指令一共有五种,分别是: invokestatic: 类方法:static invokespecial: 方法:实例构造器 私有方法:private 父类中的方法 invokevirtual 虚方法 final修饰的方法 i…
go-micro是一个知名的golang微服务框架,最新版本是v4,这篇文章将介绍go-micro v4开发RPC服务的方法及其运作原理. 基本概念 go-micro有几个重要的概念,后边开发RPC服务和介绍其运行原理的时候会用到,这里先熟悉下: Service:代表一个go-micro应用程序,Service中包括:Server.Client.Broker.Transport.Registry.Config.Store.Cache等程序运行所需的各个模块. Server:代表一个go-micr…