一、进程 / 线程 进程:启动一个application,就调度了一个进程,CPU分配内存 线程:进程中的一部分,相当于进程中的一条路径,多线程,就是多条路径。线程资源共享,CPU不额外分配内存 二、Java实现多线程 1、 继承Thread,重写run方法 /** 1. 创建多线程,继承Threa ...
分类:
编程语言 时间:
2018-09-13 18:34:15
阅读次数:
140
在JAVA多线程编程中,经常会用到synchronized、lock和原子变量等,分布式系统中,由于分布式系统的分布性,即多线程和多进程并且分布在不同机器中,synchronized和lock这两种锁将失去原有锁的效果,需要我们自己实现分布式锁来处理并发问题。分布式系统处理并发的办法有三种 1.队列 ...
分类:
其他好文 时间:
2018-09-12 20:02:29
阅读次数:
188
import java.util.ArrayList;import java.util.List;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.ut ...
分类:
其他好文 时间:
2018-09-12 18:06:06
阅读次数:
161
前言 在上一篇关于Serlvet框架和Servlet生命周期的学习中,我们已经知道了在多线程的情况下 Servlet是线程不安全的。Servlet体系是建立在java多线程的基础之上的,它的生命周期是由Tomcat 来维护的。当客户端第一次请求Servlet的时候,tomcat会根据web.xml配 ...
分类:
编程语言 时间:
2018-09-11 18:03:52
阅读次数:
138
1、相关类 Executors ExecutorService Callable ThreadPool Future 2、相关接口 Executor Executor接口的使用: ExecutorService接口的使用:(继承Executor接口) *submit方法(执行runnble、call ...
分类:
编程语言 时间:
2018-09-11 14:17:55
阅读次数:
264
前言 ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果滥用ThreadLocal,就可能会导致内存泄漏。下面,我们将围绕三个方面来分析ThreadLocal 内存泄漏的问题 ThreadL ...
分类:
编程语言 时间:
2018-09-11 14:17:02
阅读次数:
147
一、多线程的创建 1、多线程的创建 (1)、继承Thread类 (2)、实现Runnable接口 2、两种启动线程方法的区别 1、共同点 必须调用Thread 产生线程,然后调用start()方法 开启这个线程 2、不同点 因为Java是单继承这个特点 所以为了弥补这个缺点 我们可以实现Runnab ...
分类:
编程语言 时间:
2018-09-07 01:01:44
阅读次数:
174
让计算机看起来可以干很多事情。 计算机在用它的超高运行性能碾压人类的反应速度。 手机对着电脑屏幕扫描,因为变换频率相差不大,所以会闪。 酷睿多核,保证电脑可以在物理上实现多线程。 进程是操作系统中运行的一个任务。 进程是一块包含了某种资源的内存区域。操作系统利用进程把它的工作 划分为一些功能单元。 ...
分类:
编程语言 时间:
2018-09-05 19:48:57
阅读次数:
163
在之前写过的一篇随笔中已经提到了Future的应用场景和特性。(ExecutorService——<T> Future<T> submit(Callable<T> task)) 我们先来回顾一下: 一般情况下,我们会在哪里用到Future对象呢? 就是当我们需要控制任务(Runnable/Calla ...
分类:
其他好文 时间:
2018-09-04 13:48:14
阅读次数:
476
本篇文章将介绍Semaphore和Exchanger这两个并发工具类。 Semaphore 信号量 (英语:Semaphore)又称为 信号标 ,是一个同步对象,用于保持在0至指定最大值之间的一个计数值。当线程完成一次对该semaphore对象的等待(wait)时,该计数值减一;当线程完成一次对se ...
分类:
编程语言 时间:
2018-09-04 10:39:43
阅读次数:
228