- 博客(9)
- 收藏
- 关注
原创 java多线程(6) ----- 单例模式和多线程
6.1立即加载/“饿汉模式”立即加载/“饿汉模式”就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接new实例化。6.2 延迟加载/“懒汉模式”延迟加载/“懒汉模式”就是在调用get()方法时实例才被创建,常见的实现办法就是在get()方法中进行new实例化。使用DCL双检查锁机制来实现多线程环境中的延迟加载单例设计模式。使用双重检查锁功能,成功地解决了“懒汉模式”遇到多线程的问题。DCL...
2018-07-04 21:39:05 1416
原创 java多线程(4) ----- Lock的使用
4.1使用ReentrantLock类调用ReentrantLock对象的lock()方法获取锁,调用unlock()方法释放锁,效果和使用synchronized关键字一样。Object类中的wait()方法相当于Condition类中的await()方法。在condition. await()方法调用之前需要先调用lock.lock()代码获得同步器。Object类中的wait(longtim...
2018-07-03 11:44:27 206
原创 java多线程(3) ----- 线程间通信
3.1使用wait/notify实现线程间的通信wait()方法可以使调用该方法的线程释放共享资源的锁,然后从运行状态退出,进入等待队列,直到被再次唤醒;锁被自动释放;当线程呈wait()状态时,调用线程对象的interrupt()方法会出现InterruptedException异常,锁被释放(在执行同步代码块的过程中,遇到异常而导致线程终止,锁也会被释放);带一个参数的wait(long)方法...
2018-07-03 11:44:06 150
原创 java多线程(5) ----- 定时器Timer
在JDK库中Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务。Timer类的主要作用就是设置计划任务,但封装任务的类却是TimerTask类。执行计划任务的代码要放入TimerTask的子类中,因为TimeTask是一个抽象类。5.1 方法schedule(TimerTasktask,Date time)的测试该方法的作用是在指定的日期执行一次某一任务。1.执行任务的时间晚...
2018-07-03 11:25:54 149
原创 java多线程(2) ----- 对象及变量的并发访问(下)
1. synchronized对象监视器为Class时的使用synchronized关键字加到static静态方法上是给Class类上锁,而synchronized关键字加到非static静态方法上是给对象上锁。对象锁和Class锁属于不同的锁,是异步的;而Class锁可以对类所有对象实例起作用,换句话说,类中静态同步synchronized方法与synchronized(class)是同步的。...
2018-07-01 19:07:07 136
原创 java多线程(2) ----- synchronized对象监视器为Object时的使用(上)
synchronized同步方法 “非线程安全”其实会在多个线程对用一个对象中的实例变量进行并发访问时发生,产生的后果就是“脏读”,也就是取到的数据其实是被更改过的。“线程安全”就是以获得的实例变量的值是经过同步处理的,不会出现脏读的现象。 “非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题,所得结果也就是“线程安全”的了。在两个线程访问同一个对象中...
2018-06-30 23:06:09 1184
原创 java多线程(1) ----- java多线程技能(下)
1、停止线程1.1 停止不了的线程调用interrupt()方法仅仅是在当前线程中打了一个停止的标记,并不是真的停止线程。1.2 判断线程是否是停止状态this.interrupted():测试当前线程是否已经是中断状态,执行后具有将状态标志清除为false的功能。package t12;publicclass MyThread extends Thread { @Override ...
2018-06-02 21:19:07 155
原创 java多线程(1) ----- java多线程技能(上)
1、实现多线程编程的方式主要有两种,一种是继承Thread类,另一种是实现Runnable接口。使用继承Thread类的方式创建新线程时,最大的局限性就是不支持多继承,因为Java语言的特点就是单根继承,所以为了支持多继承,完全可以实现Runnable接口的方式,一边实现一边继承。注意(1)同一个thread如果多次调用start()方法,则会出现异常Exception in thread“mai...
2018-06-02 11:04:57 282
原创 Spring -----Spring中整合mybatis
1、在xml中定义MyBatis的配置文件,包括一些属性信息。xmlversion="1.0"encoding="UTF-8"?>DOCTYPEconfiguration PUBLIC"-//mybatis.org//DTDConfig 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">configurat
2017-07-11 23:05:53 274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人