多线程(三)线程的并发工具类

1. Fork/Join框架 1.什么是分而治之? 规模为N的问题,N<阈值,直接解决,N>阈值,将N分解为K个小规模子问题,子问题互相对立,与原问题形式相同,将子问题的解合并得到原问题的解 1.2 Fork/Join使用的标准范式 MyTask类需要继承RecursiveTa

多线程(二)线程基础、线程之间的共享和协作

1.线程间协作 如果要完成一个系统功能,同样需要各个线程的配合,这样就少不了线程之间的通信与协作。 1.1 等待和通知 wait()和notify/notifyAll()都是对象上的方法 1.1.1 等待和通知的标准范式 等待方: 获取对象的锁; 循环里判断条件是否满足,不满足调用wait方法。

多线程(一)线程基础、线程之间的共享和协作

1.基础概念 CPU核心数和线程数的关系 核心数:线程数=1:1 ;使用了超线程技术后---> 1:2 CPU时间片轮转机制 又称RR调度,会导致上下文切换 什么是进程和线程 进程:程序运行资源分配的最小单位,进程内部有多个线程,会共享这个进程的资源 线程:CPU调度的最小单位,必须依赖进程

MySQL优化(七)索引和执行计划

1. 索引 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 可以得到索引的本质:索引是数据结构。 上面的理解比较抽象,举一个例子,平时看任何一本书,首先看到的都是目录,通过目录去查询书籍里面的内容会非常的迅速。 上图就是一本金瓶梅的书,书籍的目录是按顺序放

MySQL性能优化(六)慢查询

1. 慢查询 1.1 慢查询是什么 MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句。 具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。 long_query_time的默认值为10,

MySQL性能优化(五)业务设计

1.逻辑设计 1.1 范式设计 1.1.1 数据库设计的第一大范式 要求数据库表的每一列都是不可分割的原子数据项。 数据库表中的所有字段都只具有单一属性 单一属性的列是由基本数据类型所构成的 设计出来的表都是简单的二维表 name-age列包含两个属性,这样就违反了第一范式,正确的做法是把na

MySQL性能优化(四)事务

1.MySQL事务 1.1 事务的简介 1.1.1 为什么需要事务 现在的很多软件都是多用户,多程序,多线程的,对同一个表可能同时有很多人在用,为保持数据的一致性,所以提出了事务的概念。 A给B转账,A的余额-1000元, B的余额就要+1000元,这两个update语句必须作为一个整体来执行,不然

MySQL性能优化(三)锁

1. 概述 2. MyISAM的表锁 2.1 读锁 #设置读锁 LOCK TABLE testmyisam READ 2.1.1 设置读锁后,在同一个会话中,对本表只能执行读操作,不能执行修改、删除操作。 SELECT * FROM testmyisam 能够执行读操作

Java泛型类型擦除以及类型擦除带来的问题

目录 1.Java泛型的实现方法:类型擦除 1-2.通过两个例子证明Java类型的类型擦除 2.类型擦除后保留的原始类型 3.类型擦除引起的问题及解决方法 3-1.先检查,再编译以及编译的对象和引用传递问题 3-2.自动类型转换 3-3.类型擦除与多态的冲突和解决方法 3-4.泛型类型变量不能是基本

MySQL性能优化(二)存储引擎

1. MyISAM 1.1 MyISAM数据库文件组成 frm:存储表结构,任何存储引擎都具备的(MySQL8.0以后没有.frm了,元数据都存在系统表空间里) MYD:数据文件 MYI:索引文件 因为MyISAM引擎的数据和索引分开存放,所以它是非聚集索引 1.2 特性 压缩测试 m
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×