随笔分类 - Java学习笔记
摘要:1. 解析引擎 解析过程分为词法解析和语法解析。 解析引擎在 parsing 包下,包含两大组件: 词法解析器用于将SQL拆解为不可再分的原子符号,称为Token。并根据不同数据库方言所提供的字典,将其归类为关键字,表达式,字面量和操作符。 再使用语法解析器将SQL转换为抽象语法树。例如: 解析成的
阅读全文
摘要:jdk1.5多线程的实现的方式: jdk1.5之前对锁的操作是隐式的 synchronized(对象) //获取锁 { } //释放锁 jdk1.5锁的操作是显示的:在包java.util.concurrent.locks中含有多线程实现方式相关的接口和类。 有一个描述锁的Lock接口,也就是把锁面
阅读全文
摘要:一个生产线程,一个消费线程,程序不存在安全问题 两个生产线程,两个消费线程,出现了生产两次,消费一次或者生产一次,消费两次的情况。 出现问题的原因是:线程被唤醒之后没有回去判断标记,直接继续执行后边的代码。 解决方式:让线程被唤醒之后不是直接执行后边的代码,而是回去判断标志,这个问题可以通过把if改
阅读全文
摘要:1 class Res 2 { 3 private String name; 4 private String gender; 5 private boolean flag; 6 7 //根据面向对象的原则,把和属性相关的功能写在类中。 8 //存入数据 9 public synchronized void set(Stri...
阅读全文
摘要:代码实现上述框图: 上述代码实现存入一个输出一个的运行效果:
阅读全文
摘要:同步的两个基本要求: 如果不使用同步,将会出现如下错误: 使用同步后,错误不再出现:
阅读全文
摘要:问题引入:线程的安全问题 以下程序发现出现0号票甚至负号票,原因都是由多线程操作共享资源saleTask所导致的线程安全问题。 问题解决:同步代码块或同步方法 线程安全问题其实是由于多个线程同时处理共享资源导致的。要解决这个问题,那么必须保证用于处理共享资源的代码在任何时刻都只能有一个线程在访问。
阅读全文
摘要:创建线程的第一种方式: 这种方式的特点(缺陷):线程任务和线程是绑定在一起的。 示例: 四个窗口同时卖票, 因为是同时,所以使用多线程。 创建四个线程,都是卖票。 因为都是卖票,所以四个线程的任务是一样的。 只需要定义一个类继承Thread。 为了解决四个线程共享票的问题,需要使用创建线程的第二种方
阅读全文

浙公网安备 33010602011771号