- 博客(12)
- 收藏
- 关注
原创 java多线程---顺序打印ABC的三种实现---join方法
使用join方法,让三个线程之间存在等待关系代码如下:package com.zcj.join;public class JoinTest { public static void main(String[] args) { ThreadA threadA = new ThreadA(); ThreadB threadB = new ThreadB(threadA);
2016-05-31 15:37:06 3965
原创 java多线程---线程的状态
线程是最小的执行单位,也拥有自己的生命周期主要包含以下几个阶段:NEW(新建状态):线程创建了但是还没有执行它的start方法;RUNNABLE(运行状态):包括(RUNNING执行)和READY(准备状态),处于这个状态的线程使用isAlive方法返回为真BLOCK(阻塞状态):线程因为等待锁而处于阻塞队列中WAITING(等待):执行wait(),sleep(),join()等
2016-05-31 13:15:59 237
原创 java多线程---等待/唤醒以及生产者消费者经典同步Lock的实现
在jdk1.5并发包中引入的Lock,其主要实现重入锁,和读写锁,并且相对于synchronized原生的将锁的获取和释放显示化,并且可以提供了非阻塞的获取锁,并结合condition实现多路分之,将条件更加细化,并且比synchronized效率更高,但是在jdk1.6,对synchronized做出了很多优化,所以性能不一定比lock差,下面给出使用lock来实现等待/唤醒和之前的生产者消费者
2016-05-31 13:06:26 347
原创 java多线程---等待/唤醒以及生产者消费者经典同步synchronized的实现
一个线程开始执行后就进入等待,然后另外一个线程来唤醒它代码如下:package com.zcj.thread02;public class Thread01 { private static Object object= new Object(); public static void main(String[] args) { ThreadA theA = new
2016-05-30 22:45:56 450
原创 java多线程---停止、暂停一个线程
1.使用线程的stop方法,但是这个方法已经被deprecated了,因为使用它会释放锁并停掉线程,但是会出现数据不一致以及重要资源不能正确释放的问题2.使用interrupt方法:调用线程的这个方法会修改线程的中断标志位真,可以通过interrupted和isInterrupted这两个方法来判断线程是否已经被中断,区别是第一个方法在调用之后会把状态改为false,第二个方法则不会使用i
2016-05-28 23:13:12 3972
原创 java多线程---线程的创建方式
线程常见的拥有两种创建方式:使用继承的方式来创建线程有一个弊端就是java类是单继承的,不利于线程类再继承其他的类,所以一般使用实现Runnable接口的方式代码分别如下:package com.zcj.thread;public class ThreadCreateWay { public static void main(String[] args){ Thread01
2016-05-28 22:00:26 263
原创 java多线程---顺序打印ABC的三种实现---ReentrantLock方式
使用jdk1.5并发包中引入的lock方式,这种方式使用比synchronized这种方式更加灵活,也提供了在获取锁时阻塞的办法代码如下:package com.zcj.thread;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public
2016-05-27 16:55:49 3059
原创 java多线程---顺序打印ABC的三种实现---synchronized方式
利用同步锁,这种方式存在问题就是唤醒的过程中不能指定我说需要唤醒的线程,导致同一个锁上的线程都唤醒了代码如下:package com.zcj.thread;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class PrintABC
2016-05-27 16:52:19 6072 1
原创 java多线程---顺序打印ABC的三种实现---volatile方式
利用volatile的立即可见性:package com.zcj.thread;public class PrintABC2 { private volatile int status =1; public void printA(){ while(status!=1){ } System.out.print("A"
2016-05-27 16:50:26 1286
原创 ssm框架学习---springmvc和mybatis整合
1.前端控制器(DispatcherServlet)2.处理器映射器(handlermapping)3.处理器适配器(handlerAdaper)4.视图解析器(ViewerResolver)目录结构如下首先配置前端控制器:在web.xml中配置如下: springmvc org.springframework.web.serv
2016-05-14 19:18:46 479
原创 ssm框架学习---mybatis和spring的整合
整合主要是将数据源和映射等交给spring来管理,准备工作需要spring和mybatis的整合包,这里采用mybatis的第二种mapper的开发方式mapper接口,映射文件,pojo类和之前的编写一样,这里不再列举首先来看看sqlmapconfig.xml文件<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3
2016-05-14 18:52:05 470
原创 ssm框架学习---mybatis学习文件结构和代码示例
准备工作:mybatis的jar包,数据库的驱动包,日志log4j和单元测试的包开发模式:(1)基于原始dao开发,需要编写dao接口和dao接口的实现类 (2)基于mapper开发,只需编写dao接口,但是需要遵守一定规范(映射文件的命名空间为dao接口全限定名,接口中的方法,参数类型和返回类型和映射文件中statement语句输入参数和输出参数相对
2016-05-14 17:45:21 3740
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人