自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (5)
  • 收藏
  • 关注

原创 单例模式与多线程

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:   1.)某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。   2.)省去了new操作符,降低了系统内存的使用频率,减轻GC压力。   3.)有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比

2017-08-27 22:22:41 821

原创 多线程多个实例

顺序打印3次ABC  正常的情况下,线程在运行时多个线程之间执行任务的时机是无序的。可以通过改造代码的方式使它们运行具有有序性。public class MyThread extends Thread { private Object lock; private String showChar; private int showNumPosition; private

2017-08-27 21:22:47 889

原创 Java多线程之Lock的使用--重入锁(ReentrantLock)、Condition、公平锁和非公平锁、ReentrantReadWriteLock的使用(读写锁)

一、ReentrantLock的使用  在Java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,但在JDK1.5中新增加了ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大,比如具有嗅探锁定、多路分支通知等功能,而且在使用上也比synchronized更加的灵活。    1、使用ReentrantLock实现同步    既然ReentrantL

2017-08-27 20:35:54 2457

原创 Java多线程之通过管道线程间通信(字节流、字符流),类ThreadLocal与类InheritableThreadLocal的使用

一、通过管道线程间通信(字节流、字符流)  在Java语言中提供了各种各样的输人/输出流Stream,使我们能够很方便地对数据进行操作,其中管道流(pipeStream)是一种特殊的流,用于在不同线程间直接传送数据。一个线程发送数据到输出管道,另一个线程从输人管道中读数据。通过使用管道,实现不同线程间的通信,而无须借助于类似临时文件之类的东西。   在Java的JDK中提供了4个类来使线程间可以进

2017-08-27 16:45:26 1990

原创 Java多线程之线程间通信--生产者/消费者模式

等待(wait)/通知(notify)模式最经典的案例就是“生产者/消费者”模式。虽然此模式在使用上有几种“变形”,还有一些小的注意事项,但原理都是基于wait/notify的。public class Storage { //仓库最大存储量 private final int MAX_SIZE = 10; // 仓库存储的载体 private LinkedList<

2017-08-27 16:01:52 583

原创 Java多线程之线程间通信--等待(wait)/通知(notify)机制,等待/通知之交叉备份实例

1、什么是等待/通知机制   等待/通知机制在生活中比比皆是,比如在就餐时就会出现,如图所示。      厨师和服务员之间的交互要在“菜品传递台”上,在这期间会有几个问题:   1).厨师做完一道菜的时间不确定,所以厨师将菜品放到‘菜品传递言,上的时间也不确定。   2).服务员取到菜的时间取决于厨师,所以服务员就有“等待”(wait)的状态。   3).服务员如何能取到菜呢?这又得取决

2017-08-27 15:45:21 1116

原创 Java多线程之同步锁定--volatile关键字、原子类

使用volatile关键字增加了实例变量在多个线程之间的可见性。但volatile关键字最致命的缺点是不支持原子性。   下面将关键字synchronized和volatile进行一下比较:   1.)关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,而synchronized可以修饰方法,以及代码块。随

2017-08-27 14:28:11 1411

原创 Java多线程之同步锁定--synchronized同步方法和同步块、脏读、锁重入、死琐

线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。一、同步注意事项1.1、方法内的变量为线程安全   “非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题(这是方法内部的变量是私有的特性造成的,所得结果也就是“线程安全”的了,方法的变量存放在JVM里的虚拟机栈里)。2、实例变量非线程安全   如果多个线程共同访问1个对象中的实例变量,则可能

2017-08-27 12:09:59 2502

原创 停止线程

停止线程  停止线程是在多线程开发时很重要的技术点,掌握此技术可以对线程的停止进行有效的处理。停止线程在Java语言中并不像break语句那样干脆,需要一些技巧性的处理。   使用Java内置支持多线程的类设计多线程应用是很常见的事情,然而,多线程给开发人员带来了一些新的挑战,如果处理不好就会导致超出预期的行为并且难以定位错误。   停止一个线程意味着在线程处理完任务之前停掉正在做的操作,也就是

2017-08-26 22:02:37 1004

原创 java线程基础知识

一、java线程概念和原理1.1、操作系统中线程和进程的概念   现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。   进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。   线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程

2017-08-26 20:30:45 1049

原创 JDK8----集合之流式(Streams)操作

JDK8 —- 集合之流式(Streams)操作 为什么需要 Stream   Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合

2017-08-15 09:43:02 5070

原创 maven----pom.xml详解

什么是pom?   Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。<project> <modelVe

2017-08-06 21:09:20 835

原创 RabbitMQ基础知识

你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。   消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。   RPC(Remote

2017-08-06 19:08:22 502

原创 Java----JUC

1.Java JUC 简介  在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。 提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等.2.volatile 关键字 内存可见性2.1.内存可见性

2017-08-02 11:56:33 767

《Maven实战》完整高清版

2016-09-06

Java多线程编程核心技术_完整版

2016-07-07

SQL实验数据

该文件里面有sql的各种语法和相关数据结果

2015-08-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除