Java 并发编程
hongguo_cheng
无法忽视行动的力量
展开
-
设计模式-单例模式的几种创建方式
单例模式定义Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例)创建方式创建方式分为饿汉式、懒汉式、双重检查、静态内部类、枚举等。饿汉式静态属性创建/** * 采用饿汉式创建单例 * 使用静态...原创 2019-12-16 22:50:01 · 165 阅读 · 0 评论 -
Java 并发编程(八)Future和Callable,CompletionService的使用
Future和Callable介绍 线程Thread默认情况下不具有返回值的功能,如果在需要取得返回值的情况下是极为不方便的,在Java5的并发包中可以使用Future和Callable来实现线程具有返回值的功能。原创 2017-10-14 16:39:49 · 633 阅读 · 0 评论 -
Java 并发编程(七)Fork/Join框架
什么是Fork/Join框架 Fork/Join框架是Java7提供的并行执行任务的框架,是把大任务分割成若干小任务,最终汇总每个小任务结果后得到大任务结果的框架。 再从字面意思来理解一下Fork/Join框架的意思,Fork就是切分大任务成小任务并行执行,Join就是合并小任务的结果得到大任务的结果。原创 2017-10-11 21:13:44 · 363 阅读 · 0 评论 -
Java 并发编程(九)并发集合框架
集合框架简介编程中,我们经常需要集中存放多个数据。数组是我们的一个很好的选择,前提是我们事先明确我们将要保存对象的数量。数组在初始化时如果指定了长度,那这个数组长度就是不可变的了,如果我们需要保存一个可以动态增长的数据(编译时无法确定具体的对象数量),所以Java提供了集合框架来实现这个功能。原创 2017-10-18 19:59:31 · 7178 阅读 · 0 评论 -
Java 并发编程(六)线程池Executors与ThreadPoolExecutor
为什么使用线程池?在开发服务器软件时,我们经常需要处理执行时间比较短但是数量巨大的请求,如果每个请求都创建一个新的线程来处理,那就会导致线程太多而遇上系统性能的瓶颈,因为线程的创建和销毁需要JVM进行处理,如果请求时间太短,那就在线程的创建和销毁对象上花费的时间大于线程执行的时间,如果是这样,那性能就大大降低了。 考虑到以上问题,java在jdk5中提供了线程池的支持,当然我们可以自己来实现原创 2017-09-29 11:44:47 · 466 阅读 · 0 评论 -
Java 并发编程(五)同步锁Lock的使用
除了上篇讲的synchronized关键字来实现同步,java5中也提供了Lock对象来实现同步的效果,我们重点学习以下两个知识点。ReentrantLock类ReentrantReadWriteLock类1. ReentrantLock 类的使用java多线程中,synchronized关键字实现多线程之间的同步,但是ReentrantLock类也能达到同样的效果,并且在扩展功能上也更强大,原创 2017-09-26 21:03:06 · 573 阅读 · 0 评论 -
Java 并发编程(四)线程同步关键字volatile和synchronized
线程,是程序执行流的最小单位。是进程中的一个实体,是被系统独立调用和分派的基本单元,线程自己不拥有系统资源,只是拥有在运行中必不可少的资源,但是可以与同属一个进程的其他线程共享全部资源,一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以兵法执行。单个程序中同时运行多个线程完成不同工作,称之为多线程。java中并发包:java.util.concurrent原创 2017-09-14 20:53:30 · 545 阅读 · 0 评论 -
Java 并发编程(一)线程与进程
1. 进程1.1 概念 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。2. 线程2.1 概念 线程,有时被称为轻量级进程(Lightweight原创 2017-09-25 19:19:41 · 275 阅读 · 0 评论 -
Java 并发编程(二)线程状态跃迁
线程的状态:1、新建状态(New)新创建了一个线程对象。示例: Thread t = new Thread();2、就绪状态(Runnable)线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。示例: t.start();3、运行状原创 2017-09-25 21:45:37 · 529 阅读 · 0 评论 -
Java 并发编程(三)线程管理
线程管理根据[ Java 并发编程(二)线程状态跃迁](http://blog.csdn.net/hongguo_cheng/article/details/78089854)可知线程包含了如下几种状态:1.新建状态(New)2.就绪状态(Runnable)3.运行状态(Running)4.阻塞状态(Blocked)5.死亡状态(Dead)Java中自带了对多线程技术的支持,实现多线程编原创 2017-09-26 11:10:32 · 304 阅读 · 0 评论