草庐IT

分区机制

全部标签

[崩溃] Java和Android崩溃捕获机制

作为开发同学,每天都在面临各种各种的崩溃问题。我们都如果在Android应用中发生了未捕获的崩溃问题,不管是在主线程还是在子线程,应用都会直接退出。但是Java程序,子线程抛出的异常,不会引起程序的退出。那你们知道JVM是如何处理应用未捕获崩溃的吗?Android又是怎样在发生崩溃时让程序退出的呢?崩溃处理机制当一个线程抛出异常时,JVM会调用线程的dispatchUncaughtException方法,所有未被捕获的异常,最后都会交给UncaughtExceptionHandler处理。对于一个线程来说,UncaughtExceptionHandler有多个,首先有针对单个线程的unCaug

线程池的机制

老生常谈的问题:什么是线程池?线程池就是创建若干个可执行的线程放入一个池(容器)中,有任务需要处理时,会提交到线程池中的任务队列,处理完之后线程并不会被销毁,而是仍然在线程池中等待下一个任务。为什么要用线程池?1.创建/销毁线程伴随着系统开销,使用多线程过于频繁的创建/销毁线程,会很大程度上影响处理效率;这里线程池可以复用线程,线程池可以避免性能降低。2.线程并发数量过多,抢占系统资源从而导致阻塞;这里线程池可以显示最大线程数量。3.对线程进行一些简单的管理讲线程池原理之前,先讲一讲线程池原理要涉及到的阻塞队列。阻塞队列:阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这里

hive静态分区和动态分区

目录一:静态分区和动态分区介绍二:静态分区和动态分区区别三:样例四:动态分区参数一:静态分区和动态分区介绍1、静态分区与动态分区的主要区别在于静态分区是手动指定,而动态分区是通过数据来进行判断。详细来说,静态分区的列实在编译时期,通过用户传递来决定的;动态分区只有在SQL执行时才能决定。静态分区:分区是指定的一个固定值;动态分区:分区根据读入的值动态写(可理解为变量形式)。静态分区的表不能被加到动态分区里,可以增加新的分区但是只对后来加入的新数据有意义,已经写入数仓的文件不能被重新分区了,只能重写!2、Hive分区是在创建表的时候用Partitionedby关键字定义的,但要注意,Partit

linux系统创建新的Swap分区

先执行free-h查看现在的swap分配情况 执行swapon-s查看swap的分区文件执行swapoff/dev/dm-1取消已经挂上的swap文件现在扩充swap到4G,并将swap文件挂到/vm_memory/swapfile上先创建/vm_memory/swapfile,依次执行mkdir/vm_memorytouch/vm_memory/swapfile这时候就创建了/vm_memory目录和swapfile文件然后执行ddif=/dev/zeroof=/vm_memory/swapfilebs=1Mcount=4096说明下  if是啥我也不知道,好像是个只写0的东西,是linux

玩机搞机----mtk芯片机型 另类制作备份线刷包的方式 读写分区等等

前面分享了几期高通和mtk芯片机型备份字库的几种方法教程。这些针对与很多没有线刷包资源的手机机型玩机操作。前面对接一个友商的mtk芯片杂牌机。和另外一个国外mtk芯片级都是来制作线刷包。因为,这些机型没有固件流出。而同一批机型中安卓版本高低不固定。支持的资源也就不同,所以需求导出分区进行二次刷写。前面几期相关教程资源可以参考高通机型备份字库备份制作线刷包的几种方式解析{二}_高通qpst线刷包_安卓机器的博客-CSDN博客💔💔💔今天的教程针对mtk芯片机型制作线刷包的另外一种方式💔💔💔 通过前面几期的教程可以分析出。mtk芯片线刷包的基础在于他的引导txt,这个里面涵盖了mtk芯片各个分区的写

QT 之基础(一) 详解UI文件设计与运行机制

一、项目文件组成1.1创建一个项目文件    建立好项目如下 (1)项目组织文件【untitled.pro】存储项目设置文件QT+=coregui//表示项目中添加coregui模块greaterThan(QT_MAJOR_VERSION,4):QT+=widgets//条件执行语句,Qt主版本大于4时,才加入widgets语句TARGET=untitled//表示生成目标可执行文件的名称TEMPLATE=app//项目使用的模板是app(2)主程序入口文件【main.cpp】实现函数main()函数程序文件 #include"mainwindow.h"#includeintmain(inta

Java中锁的优化机制了解吗?

从JDK1.6版本之后,synchronized本身也在不断优化锁的机制,有些情况下他并不会是⼀个很重量级的锁了。优化机制包括⾃适应锁、⾃旋锁、锁消除、锁粗化、轻量级锁和偏向锁。锁的状态从低到⾼依次为⽆锁->偏向锁->轻量级锁->重量级锁,升级的过程就是从低到⾼,降级在⼀定条件也是有可能发⽣的。⾃旋锁:由于⼤部分时候,锁被占⽤的时间很短,共享变量的锁定时间也很短,所有没有必要挂起线程,⽤户态和内核态的来回上下⽂切换严重影响性能。⾃旋的概念就是让线程执⾏⼀个忙循环,可以理解为就是啥也不⼲,防⽌从⽤户态转⼊内核态,⾃旋锁可以通过设置-XX:+UseSpining来开启,⾃旋的默认次数是10次,可以

双亲委派机制

前言Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将其class文件加载到内存生成class对象。Java虚拟机采用了双亲委派机制对class文件进行加载。ClassLoaderJVM中提供了三层的ClassLoader:BootstrapClassLoader,ExtClassLoader,APPClassLoader。BootstrapClassLoader:主要负责加载核心的类库(java.lang.*等),构造ExtClassLoader和APPClassLoader。ExtClassLoader:主要负责加载jre/lib/ext目录下的一些扩展j

RabbitMQ发送方确认机制

1、前言RabbitMQ消息首先发送到交换机,然后通过路由键【routingKey】和【bindingKey】比较从而将消息发送到对应的队列【queue】上。在这个过程有两个地方消息可能会丢失:消息发送到交换机的过程。消息从交换机发送到队列的过程。而RabbitMQ提供了类似于回调函数的机制来告诉发送方消息是否发送成功。这里针对上述的两种情况,RabbitMQ也是给出了以下的应对策略:publisher-confirm:消息到达交换机时会触发。publisher-return:到达交换机但是没有路由到队列,会返回ack以及失败原因。2、publisher-confirm在SpringBoot项

AQS机制

AQS:全名为AbstractQuenedSynchronizer,翻译过来即抽象的队列同步器,是一种用来构建锁和同步器的框架。基于AQS构建同步器,很多并发类都是基于它实现的,这些类都是继承于AbstractQueuedSynchronizer,包括:ReentrantLockSemaphoreCountDownLatchReentrantReadWriteLockSynchronusQueueAbstractQueuedSynchronizer类及重要方法:publicabstractclassAbstractQueuedSynchronizerextendsAbstractOwnable