踩坑了!熬夜整理小米Android面试题
一、Java初中级面试题1.容器(HashMap、HashSet、LinkedList,HashSet等)2.内存模型3.JVM、Davilk、ART三者的原理和区别4.垃圾回收机制5.类加载方案6.说说你对Java反射的理解7.说说你对动态代理的理解8.什么是线程池,如何使用?为什么要使用线程池?9.在多线程运行过程中,解决安全性问题?10.设计模式(
简
4年前
Binder Driver缺陷导致定屏的案例
本文讲解异步bindercall是如何阻塞整个系统的,通过ramdump信息以及binder通信协议来演绎并还原定屏现场。一、背景知识点解决此问题所涉及到的基础知识点有:Trace、CPU调度、Ramdump推导、Crash工具、GDB工具、Ftrace,尤其深入理解binderIPC机制。1.1工具简介Trace:分析死锁
Wesley13 Wesley13
3年前
go中内存泄露的发现与排查
一,什么是内存泄漏Go中的并发性是以goroutine(独立活动)和channel(用于通信)的形式实现的。处理goroutine时,程序员需要小心翼翼地避免泄露。如果最终永远堵塞在I/O上(例如channel通信),或者陷入死循环,那么goroutine会发生泄露。即使是阻塞的goroutine,也会消耗资源
Wesley13 Wesley13
3年前
Java NIO用法
一:NIO简介java.nio全称javanonblockingIO,是指jdk1.4及以上版本提供的新的api(NewIO非正式叫法),为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。JavaNIO由以下三个核心部分组成:Channels:通道B
Stella981 Stella981
3年前
HttpClient多线程并发问题
这篇文章概括了怎样在多线程环境下安全的使用HttpClient。建立连接在HttpClient中使用多线程的一个主要原因是可以一次执行多个方法。在执行期间,每一个方法都使用一个HttpConnection实例。由于在同一时间多个连接只能安全地用于单一线程和方法和有限的资源,我们就必须确保连接分配给正确的方法。而MultiThreaded
Wesley13 Wesley13
3年前
Go的PCRE包装在启用JIT的时候遇到的问题和解决方案
用CGO包装C的库,如果启用了JIT的话,会有一些问题.例如pcre用了JIT动态生成代码并JIT代码引用里自己线程的JITStack数据.这时会有一个问题,JIT代码的线程并不会刚好是后续Goroutine执行的线程,当这件事发生的时候,内存异常不可能避免.解决方案有两个:1\.针对每个库特别的优化,把JIT引用的数据
Stella981 Stella981
3年前
Spring Data R2DBC 入门
1、介绍R2DBC(ReactiveRelationalDatabaseConnectivity)是在2018年SpringOnePlatform大会被提出来的,它旨在使用完全无阻塞驱动程序创建数据库链接,为SQL数据库创建响应式API。为了探索R2DBC我们将创建一个简单的WebFlux应用实现目标2、项目配置
Stella981 Stella981
3年前
Python 协程实现socket并发
socket多并发socket可以实现单个客户端进行请求访问,它可以通过socketserver来实现并发功能呢,socketserver是通过启用多线程实现并发,在这里我们也可以通过gevent协程来实现单个线程下的多并发。socketserver:importgeventfromgeventi
Stella981 Stella981
3年前
Executors功能如此强大,ThreadPoolExecutor功不可没(一)
作为Java程序员,无论是技术面试、项目研发或者是学习框架源码,不彻底掌握Java多线程的知识,做不到心中有数,干啥都没底气,尤其是技术深究时往往略显发憷。在JDK1.5以前,研发人员在面对线程频繁调度的场景,必须手动打造线程池,来节约系统开销(画外音:真是吃了不少苦头)。从JDK1.5开始,Java提供了一个Excu
Wesley13 Wesley13
3年前
Selenium2 Python 自动化测试实战学习笔记(八)
Python多线程分布式和并行是完全不同的概念,分布式只负责将一个测试脚本可调用不同的远程环境来执行;并行强调“同时”的概念,它可以借助多线程或多进程技术并行来执行脚本技术。10.1单进程的时代        在单线程的时代,当处理器要处理多个任务时,必须要对这些任务排一下执行顺序并按照这个顺序