Java内存模型Java程序执行流程日常Java的基本开发模式是,我们写的所有java程序都保存在*.java的文件中,即我们的源代码,这些源代码必须经过javac.exe命令将其编译成*.class文件,而后利用java.exe命令在JVM进程中解释执行。整个过程如下图: 实际上,当JVM将所需 ...
Linux - 常用命令
命令的基本格式[root@localhost~] root为用户名(#超级用户 $普通用户) localhost主机名命令的基本格式: 命令[选项][参数] 查询目录的内容命令格式: ls [选项][文件或目录] 选项: -a 所有文件,包括隐藏文件。 -l 查看详情,包含文件的确切大小 ...
Java - CompletableFuture
CompletableFuture是Java8中对Future的增强。实现CompletionStage接口(40余个方法),大多数方法多数应用在函数式编程中,并且支持流式调用。 简单实现: public class CompletableFutureTest implements Runnable ...
Java多线程-12之-Callable、Future、FutureTask
概述从Java 1.5开始,开始提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。 对比Runnable和Callbale Runnable是在java.lang.Runnable包下面,没有返回值,而Callable是在java.util.concurrent包 ...
Java多线程-11之-生产者消费者模型
生产者/消费者模型生产/消费者问题是个非常典型的多线程问题,涉及到的对象包括“生产者”、“消费者”、“仓库”和“产品”。他们之间的关系如下: 生产者仅仅在仓储未满时候生产,仓满则停止生产。 消费者仅仅在仓储有产品时候才能消费,仓空则等待。 当消费者发现仓储没产品可消费时候会通知生产者生产。 生产者 ...
设计模式-模板方法模式
模式定义定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种基于继承的代码复用技术,它是一种类行为型模式。 主要作用当完成一个操作具有固定的流程时,由抽象固定流程步骤,具体步骤交给子类进行具体实现(固定的流 ...
数据库锁机制及事务隔离级别
前言用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。 锁的种类共享锁(Shared lock) 例1: T1: select * from table (请想象它需要执行1个小时之久,后面的sql语句请都这么想象)T2: upda ...
Java多线程-10之-线程优先级和守护线程
线程优先级java 中的线程优先级的范围是1~10,默认的优先级是5。“高优先级线程”会优先于“低优先级线程”执行。 java 中有两种线程:用户线程和守护线程。可以通过isDaemon()方法来区别它们:如果返回false,则说明该线程是“用户线程”;否则就是“守护线程”。用户线程一般用户执行用户 ...
Java多线程-09之-线程中断和终止方式
interrupt()说明关于interrupt(),java的djk文档描述如下:http://docs.oracle.com/javase/7/docs/api/ Interrupts this thread.Unless the current thread is interrupting ...
Java内存模型-内容总结
处理器内存模型顺序一致性内存模型是一个理论参考模型,JMM 和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM 和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和 JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的 ...