捉虫大师 捉虫大师
4年前
一种极致性能的缓冲队列
本文已收录https://github.com/lkxiaolou/lkxiaolou欢迎star。背景在多线程下的生产者消费者模型中,需求满足如下情况:对生产者生产投递数据的性能要求非常高多个生产者,单个(多个也可以,本文只介绍单个的情况)消费者当消费者跟不上生产者速度时,可容忍少部分数据丢失生产者是单条单条地生产数据举个日志采集的例子,日志在不同的
baskbull baskbull
4年前
Java的fail-fast机制究竟是什么?
failfast机制快速失败模块的职责是检测错误,然后让系统的下一个最高级别处理错误。一旦发生异常,直接停止并上报。尽最大努力去抛出异常。这样做的好处是可以预先识别出一些错误情况,但是它同样也可能会为我们带来一些问题。集合类的failfast机制当多个线程对部分集合进行结构上的改变操作,有可能会产生failfast机制,这时候会抛出ConcurrentM
并发编程
并发编程笔记本博客根据学习而做的笔记,链接如下一、基本概念1、进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的。当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。进程
简
4年前
彻底理解安卓应用无响应机制
引言不论从事安卓应用开发,还是安卓系统研发,应该都遇到应用无响应(ANR,ApplicationNotResponding)问题,当应用程序一段时间无法及时响应,则会弹出ANR对话框,让用户选择继续等待,还是强制关闭。绝大多数人对ANR的了解仅停留在主线程耗时或CPU繁忙会导致ANR。面试过无数的候选人,几乎没有人能真正从系统级去梳理清晰ANR的
Wesley13 Wesley13
3年前
BIO、NIO、AIO 介绍和适用场景分析
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、同步阻塞的BIO在JDK1.4之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个serverSocket,然后在客户端启动socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否
Wesley13 Wesley13
3年前
Java并发(三):重排序
在执行程序时为了提高性能,提高并行度,编译器和处理器常常会对指令做重排序。重排序分三种类型:1.编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。2.指令级并行的重排序。现代处理器采用了指令级并行技术(InstructionLevelParallelism,ILP)来将多条指令重叠执行。如果不存在数据依
Wesley13 Wesley13
3年前
Java期末总结——博客三
Java期末总结        一学期的java课程已经结束了,通过这学期对Java的学习,我学习到了很多,首先就是对java有了一个全面的认识,其次也学到了很多知识点,比如:基本类型与数据,循环语句,子类继承,接口,SQL结构化语句还有多线程等等。但是自己对这门课还存在很多问题,在每次考核时,发现自己对知识点的理解特别的差,我不知道该如何应用,
Wesley13 Wesley13
3年前
Mysql体系结构(第4天)
数据库与数据库实例数据库:是二进制文件;数据库实例:用来操作数据库文件;mysql一个数据库对应一个实例;一个实例对应一个数据库;单进程多线程;每张表都有一个存储引擎!(https://oscimg.oschina.net/oscnet/9d3433c66c0c8e3991d66f80c7c5c22a943.pn
Stella981 Stella981
3年前
Qt编写项目作品27
一、功能特点1.多线程收发文件,支持加密传输。2.接收端支持监听端口接收文件和主动连接服务器接收文件两种方式。3.按照文件开始符文件大小文件内容文件结束符逐个分包接收。4.可对接收的加密过的文件包进行解密输出。5.如果采用连接服务器方式接收文件可指定请求文件。6.接收端请求文件的形式可以作为通用的
Wesley13 Wesley13
3年前
Java动态追踪技术探究
引子在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话:“Debug一下吧。”“线上机器,没开Debug端口。”“看日志,看看请求值和返回值分别是什么?”“那段代码没打印日志。”“改代码,加日志,重新发布一次。”“怀疑是线程池的问题,重启会破坏现场。”