java并发编程降低延迟

java并发编程降低延迟 在平时开发的过程中,其实有很多可以采用多线程优化的地方,像ExecutorService、CompletionService、CompletableFuture和并行流等类,只是没有去注意,这里总结下日常工作中常用的一些方法。 [TOC] 一、ExecutorService ... »

# java多线程重要知识点整理一

java多线程重要知识点整理一 [TOC] 本系列文是对自己学习多线程和平时使用过程中的知识梳理,不适合基础比较差的阅读,适合看过java编程实战做整体回顾的,想到了会不断补充。 1. 线程池的使用 线程池其实在实际工作中有用到的话理解其实是非常简单的,合理的利用线程池能极大的提高效率。主要说明下程 ... »

Java 多线程(四)—— 单例模式

这篇博客介绍线程安全的应用——单例模式。 单例模式 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。 实例: /** * @author: ChenHao * 关于懒汉式的线程安 ... »

Java 多线程(三)—— 线程的生命周期及方法

这篇博客介绍线程的生命周期。 线程是一个动态执行的过程,它也有从创建到死亡的过程。 线程的几种状态 在 Thread 类中,有一个枚举内部类: 上面的信息以图片表示如下: 第一张图: 第二张图:把等待、计时等待、阻塞看成阻塞一个状态了 1、新建状态(new):使用 new 创建一个线程,仅仅只是在堆 ... »

Java 多线程(二)—— 线程的同步

上文创建多线程买票的例子中注释会出现错票、重票的问题,本文来讲讲如何解决此问题。本文例子:利用多线程模拟 3 个窗口卖票 上文创建多线程买票的例子中注释会出现错票、重票的问题,本文来讲讲如何解决此问题。本文例子:利用多线程模拟 3 个窗口卖票 实现Runnable接口 public class Te ... »

Java 多线程(一)------概念的引入

并发和并行 并行:指两个或多个时间在同一时刻发生(同时发生); 并发:指两个或多个事件在一个时间段内发生。 在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行 ... »

Java内存模型探秘

1.Java内存模型概述 Java内存模型是一种抽象概念,不是真实存在的。主要定义了程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存取出变量这样的底层细节。注意:这里的变量仅包括实例字段、静态字段、构成数组对象的元素,但不包括局部变量与方法参数。因为后者是线程私有的,不会被共享,自然就 ... »

利用Thread.stop方法完成方法执行超时中断

示例代码可以从github上获取 https://github.com/git-simm/simm-framework.git 接上篇博客《FutureTask准备判断子线程的取消状态》 一、业务场景: 系统中存在多种场景并发操作事务执行时互锁的情况,导致任务积压,系统崩溃。先做了各场景业务的性能调 ... »

Java多线程1:进程和线程的区别

之前看了2天的多线程,就不看了。现在继续拾起来吧。最近有点松散,多线程内容都是看《Java多线程编程核心技术》这本书的读书笔记 什么是进程? 通俗一点讲,就是正在进行的程序,进程是操作系统控制的基本运行单元; 如上图所示,谷歌浏览器正在运行着,它就是一个进行中的程序,也就是进程。 什么是线程? 进程 ... »

分布式锁的理解,java自带的锁为什么会失效

前段时间在发送短信的代码块上通过网上找的工具类基于Redis实现了分布式锁的功能 对应的链接https://www.cnblogs.com/c-h-y/p/9391602.html 周末想细细看一下。 之后郁闷的是为什么java自带的为什么在分布式的环境下就会失效。(都是自己的low逼见解) 想想: ... »

对话线程

大部分程序员对线程这个概念印象深刻,不是在项目中用到了线程,而是来自面试官的对话。 线程和进程的区别是什么?你可以回忆下你当时的答案,可以在评论去写出来大家共享自己的理解。 进程 运行中的程序实例就叫进程;也就是说一个程序加载到内存后就变成了进程。 进程空间也称为地址空间。地址空间就是进程要用的所有 ... »

这两天学的线程池归纳

1 线程池 》接口 Executor 2 线程池 》接口 ExecutorService final ExecutorService poolExecutor = Executors.newFixedThreadPool(threadNum); poolExecutor.submit(new Con ... »

java线程池01-ThreadPoolExecutor构造方法参数的使用规则

为了更好的使用多线程,JDK提供了线程池供开发人员使用,目的在于减少线程的创建和销毁次数,以此达到线程的重复利用。 其中ThreadPoolExecutor是线程池中最核心的一个类,我们先简单看一下这个类的继承关系。 其中Executor是线程池的顶级接口,接口中只定义了一个方法 void exec ... »

什么是线程和进程

1.进程和线程之间的区别:(线程为最小资源) 1.1 单进程单线程:一个人在一个桌子上吃菜。 1.2 单进程多线程:多个人在同一个桌子上一起吃菜。 1.3 多进程单线程:多个人每个人在自己的桌子上吃菜。 一般来说,进程是资源的分配单位,线程是CPU在进程内切换的单位,线程属于进程(进程分配资源,占用 ... »

一、多线程编程之线程安全性的简介

安全性 a、 编写线程安全的代码,其核心在于要对状态的访问、更改等操作进行管理,特别是对共享的、可变的状态的访问。java中主要的同步机制有synchronized(独占锁)、volatile类型的变量、显式锁、原子变量。 b、修复同步问题的方式: 1、不在线程之间共享该状态变量 2、将状态变量修改 ... »