E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
java并发编程实战
我的书籍清单
还是手里有本书踏实,可以做做笔记,写写画画《java编程思想》《java核心技术卷ⅠⅡ》《代码大全》《代码整洁之道》《java8实战》《java性能权威指南》《
java并发编程实战
》《程序员修炼之道》《
孟宝宝
·
2020-06-25 01:57
书单
2016-2019 书单
EffectiveJava(完成)3、深入理解Java虚拟机(完成)4、HTTP权威指南(完成)5、Spring实战(完成)6、面向对象分析与设计(完成)7、深入分析javaweb技术内幕8、Java核心技术卷2二、进阶1、
Java
猴子哥哥1024
·
2020-06-25 00:38
读书笔记
《
Java并发编程实战
》- 个人阅读总结(一)
背景前段时间想更深入了解下Java多线程相关的知识,对Java多线程有一个全面的认识,所以想找一本Java多线程相关的书籍来阅读,最后我选择了《
Java并发编程实战
》这本个人认为还算相当不错,至于为什么选择它
竹二木
·
2020-06-24 22:38
java
Java并发编程实战
读书笔记——第七章 取消与关闭
要使任务和线程能安全、快速、可靠地停止下来,并不容易。JAVA没有提供任何机制来安全也终止线程,但它提供了中断(Interruption),一种协作机制,使一个线程终止另一个线程的当前工作。这种协作式的方法是必要的,我们很少希望某个任务、线程立即停止,因为这种立即停止会使共享的数据结构处于不一致的状态。相反,在编写任务和服务时可以使用一种协作的方式:当需要停止时,它们首先会清除当前正在执行的工作,
AhahaGe
·
2020-06-24 16:28
Java并发编程实战
Java并发编程实战
- 第7章 取消与关闭
Java没有提供某种抢占式的机制来取消操作或结束线程。可以通过协作式的中断机制来实现取消操作。可以使用FutureTask和Executor框架,构建可以取消的任务和服务。取消任务的原因有:用户请求取消有时间限制的操作应用程序事件错误关闭取消策略How-其他代码如何(How)请求取消该任务When-任务在何时检查是否有取消的请求What-响应取消请求时应该执行哪些操作取消任务的方式1.协作机制-设
我是松哥
·
2020-06-24 15:50
Java并发编程实战
线程
编程
java
并发
Java并发编程实战
之 线程的取消与关闭
任务取消场景用户手动取消。线程超时。线程提前结束,已经得到结果。发生错误。主线程关闭。java没有抢占式的线程停止方式,必须依靠线程本身与外部状态通过协作式的方式停止。线程中断通过设置状态位,并在某些方法中去检查这个状态位,但是这些可以响应中断状态的方法,可能被阻塞,例如调用BlockingQueue的put方法。中断方法每个线程都由一个静态的中断状态位,interrupt。interrupt()
luwfls
·
2020-06-24 10:00
多线程
java
Java 学习文章汇总
Java多线程《Java多线程(并发)总结》《
Java并发编程实战
》第一章读书笔记《
Java并发编程实战
》第二章线程安全性读书笔记《
Java并发编程实战
》第三章对象的共享读书笔记《
Java并发编程实战
》
love_world_
·
2020-06-24 08:38
Java基础
《
Java并发编程实战
》第七章 取消与关闭 读书笔记
Java没有提供任何机制来安全地(抢占式方法)终止线程,虽然Thread.stop和suspend等方法提供了这样的机制,但是由于存在着一些严重的缺陷,因此应该避免使用。但它提供了中断Interruption机制,这是一种协作机制,能够使一个线程终止另一个线程的当前工作。一、任务取消取消操作的原因:.用户请求取消.有时间限制的操作.应用程序事件.错误.关闭结束任务的四种方式:1.run方法执行结束
love_world_
·
2020-06-24 08:38
Java基础
Java多线程—synchonized关键字
线程安全与共享资源在《
Java并发编程实战
》书中对线程安全给出了下面的定义:当多个线程访问某个类时,这个类始终都能表现处正确的行为下面介绍一下各种变量的线程安全性。
机智的刘二狗o
·
2020-06-24 06:10
习惯养成第 44 天
2017-05-09习惯养成清单[x]早起5:30起床[]做一组seven的唤醒运动[x]起床后喝一杯温水[x]写自我暗示,并读三遍[x]晨读,6:00开始,读《
Java并发编程实战
》,读了2个蕃茄[x
文野_Colin
·
2020-06-24 05:16
Java后台研发面试题汇总
需要研读的几本书:java编程思想大型网站技术架构:核心原理与案例分析java并发编程的艺术(应对校招足以,
java并发编程实战
还是等工作积累了一些经验再研读)深入理解jvm虚拟机(针对JDK1.7,版本略老
N3verL4nd
·
2020-06-24 03:24
JAVA
Java并发编程实战
:第七章读书笔记
第七章取消与关闭摘要:本章主要介绍了如何结束一个任务的执行。虽然我们通常不会去打断,但要使线程安全、快速、可靠地停下来还是相对复杂的。本章主要的取消分两个方向,第一个就是任务的取消,第二个就是生成任务的线程的取消。7.1任务取消最开始的例子是使用一个标志位每次调用任务之前先检查,这是典型地先检查后执行的代码。那么当任务中含有阻塞的任务时,这个任务就有可能一直阻塞在这里永远不会被返回。第二个例子就是
lcn_2017
·
2020-06-24 03:25
读书笔记
习惯养成第 53 天
2017-05-26习惯养成清单[x]早起5:30起床[]做一组seven的唤醒运动[x]起床后喝一杯温水[x]写自我暗示,并读三遍[x]晨读,6:00开始,读《
Java并发编程实战
》,读了2个蕃茄[x
文野_Colin
·
2020-06-23 18:02
Java 并发编程内部分享PPT分享
最近系统性的学习了DougLea《
JAVA并发编程实战
》一书。这书很有嚼劲,进入JAVA技术体系必看书籍之一。
dengzai7446
·
2020-06-23 03:22
Join()会不会释放锁?
文章目录答案Demo分析拾遗答案会不过不能确切的说Demo网上找了很久没有找到答案,从书中找答案,《Java并发编程艺术》、《
Java并发编程实战
》均没有找到,在《Java多线程编程核心技术》中找到了答案
Leesin Dong
·
2020-06-23 03:36
#
JAVA
------
High
Concurrency
Java并发编程实战
——详解Condition的await和signal等待通知机制
文章目录wait()、notify()为什么在Ojbect类下?Condition初探Condition实现原理分析await()的实现:sinal()方法wait()、notify()为什么在Ojbect类下?在jdk1.5以前,我们使用synchronized,而因为synchronized中的这把锁可以是任意对象的,所以任意对象都可以调用wait()和notify();所以wait和noti
No_Game_No_Life_
·
2020-06-22 02:42
并发编程
Java并发编程实战
——并发编程的优缺点
文章目录为什么要用到并发并发编程有哪些缺点频繁的上下文切换线程安全为什么要用到并发在多核的CPU的背景下,催生了并发编程的趋势,通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升。顶级计算机科学家DonaldErvinKnuth如此评价这种情况:在我看来,这种现象(并发)或多或少是由于硬件设计者无计可施了导致的,他们将摩尔定律的责任推给了软件开发者。另外,在特殊的业务场景下先天的
No_Game_No_Life_
·
2020-06-22 02:10
并发编程
Java并发编程实战
,快来看看(仅供学习研究)
前言本文主要用于学习交流Java并发编程,锤炼Java多线程使用的技能点线程池线程资源共享多线程读写问题使用IP代理方式,从代理商获取IP,每天稳定增加访问量2w(全部博客总量,而非单篇)左右。此方式仅供学习研究,切勿实际使用!!!后果自负实现思路先通过博客列表页面,获得全部博客URL开启n个线程,每隔线程隔10s开始执行任务获取代理IP(200个),每个线程每隔60~120s随机时间间隔代理访问
Mrkaizi
·
2020-06-22 02:13
#多线程
并发编程
面试知识汇总(四)-- 多线程和并发
线程间的状态转换锁:锁机制:synchronized、Lock、ConditionJava中的锁死锁Volitale并发编程:Java并发编程:Thread类的使用Java多线程编程总结Java并发编程的总结与思考
Java
dido222
·
2020-06-21 19:42
Android开发岗面试题
《
JAVA并发编程实战
》第七章 取消与关闭
7.1任务取消程序清单7-1使用volatile类型的域来保存取消状态publicclassPrimeGeneratorimplementsRunnable{privatefinalListprimes=newArrayListget(){returnnewArrayListaSecondOfPrimes()throwsInterruptedException{PrimeGeneratorgene
小超_8b2f
·
2020-06-21 14:40
《
java并发编程实战
》 第七章 任务、线程的取消与关闭
《
java并发编程实战
笔记》第七章任务、线程的取消与关闭任务如何取消通过判断volatile类型的状态量----不一定可靠通过中断-----实现取消最合理方法可中断的阻塞函数如何响应中断通过Future
乌鸦大大
·
2020-06-21 12:55
java并发编程实战
《
java并发编程实战
》 第八章 线程池的使用
《
java并发编程实战
笔记》第八章线程池的使用与执行策略之间存在隐形耦合的任务(不可轻易更改线程池)设置线程池的大小配置ThreadPoolExecutor线程的创建配置任务队列的管理饱和策略(任务有界队列
乌鸦大大
·
2020-06-21 12:21
java并发编程实战
Java并发编程实战
————Lock
可替代synchronized的手动锁ReentrantLock是Lock接口的一个实现,可以用于替代synchronized。使用ReentrantLock可以完成类似synchronized(this)的功能,需要注意的是,就算线程已经执行完毕,Lock也不会自动释放锁,必须要手动释放锁!!!与synchronized不同的是:使用synchronized锁定的话如果遇到异常,JVM会自动释放
圣斗士Morty
·
2020-06-21 09:28
Java多线程与并发
从0学习
java并发编程实战
-读书笔记-java内存模型(14)
什么是java内存模型假设一个线程为变量aVariable赋值:aVariable=3;内存模型需要解决的问题:在什么条件下,读取aVariable的线程将看到这个值为3?如果缺少同步,那么将会有许多因素使得线程无法立即甚至永远,看到另一个线程的操作结果。在编译器中生成的指令顺序,可以与源代码中的顺序不同,编译器还会把变量保存在寄存器而不是内存中。处理器可以采用乱序或并行等方式来执行指令。缓存可能
伟大的卷发
·
2020-06-21 02:58
java
内存
多线程
并发
并发编程
从0学习
java并发编程实战
-读书笔记-原子性与非阻塞同步算法(13)
近年来,在并发算法领域的大多数研究都侧重于非阻塞算法,这种算法用底层的原子机器指令(例如比较和交换指令)代替锁来确保数据在并发访问中的一致性。非阻塞算法被广泛的用于在操作系统和JVM中实现线程/进程调度机制,垃圾回收机制以及锁和其他并发数据结构。与基于锁的方案相比,非阻塞算法在设计和实现上都要复杂的多,但它们在可伸缩性和活跃性上有着巨大的优势。由于非阻塞算法可以使多个线程在竞争相同的数据时不会发生
伟大的卷发
·
2020-06-21 02:26
java
并发编程
并发
多线程
同步
从0学习
java并发编程实战
-读书笔记-构建自定义的同步工具(12)
类库包含了许多存在状态依赖的类,例如FutureTask、Semaphore和BlockingQueue等。在这些类的一些操作中有着基于状态的前提条件,例如,不能从一个空的队列中删除元素,或者获取一个尚未结束的任务的计算结果,在这些操作可以执行之前,必须等到队列进入“非空状态”,或者任务进入已完成状态。创建状态依赖类的最简单方式就是在类库中现有的状态依赖类上进行构造,例如countDownLatc
伟大的卷发
·
2020-06-21 02:53
java
并发编程
多线程
后端开发
锁
从0学习
java并发编程实战
-读书笔记-显式锁(11)
Java5.0增加了一种新的机制:ReentrantLock,ReentrantLock并不是一种替代内置加锁的方法,而是当内置加锁机制不适用时,作为一种可选择的高级功能。Lock和ReentrantLock与内置的加锁机制不同,Lcok提供了一种无条件的、可轮训的、定时的以及可中断的锁获取操作,所有的加锁和解锁的方法都是显式的。在Lock的实现中必须提供与内部锁相同的内存可见性语义,但在加锁语义
伟大的卷发
·
2020-06-21 02:52
java
多线程
并发编程
锁
synchronized
从0学习
java并发编程实战
-读书笔记-性能与可伸缩性(10)
线程的最主要目的是提高程序的运行性能。虽然我们希望获得更好的性能,但是始终需要把安全性放在第一位。首先需要保证程序能正确运行,然后仅当程序的性能需求和测试结果要求程序执行的更快时,才应该设法提高它的运行速度。在设计并发程序时,最重要的通常不是把性能提至极限。对性能的思考提升性能意味着用更少的资源做更多的事。当操作性能由于某种特定的资源而受到限制时,我们通常将该操作称为资源密集型的操作,例如CPU密
伟大的卷发
·
2020-06-21 02:52
java
多线程
并发编程
synchronized
后端开发
从0学习
java并发编程实战
-读书笔记-活跃性问题(9)
在安全性与活跃性之间通常存在着某些制衡。我们使用加锁机制来确保线程安全,单如果过度的使用加锁,则可能导致锁顺序死锁(Lock-OrderingDeadlock)。我们使用线程池和信号量来限制对资源的使用,但这些被限制的行为可能会导致资源死锁(ResourceDeadlock)。死锁在数据库系统的设计中考虑了检测死锁以及从死锁中恢复。当数据库系统检测到一组事务发生了死锁(通过在表示等待关系的有向图中
伟大的卷发
·
2020-06-21 02:52
死锁
synchronized
java
多线程
并发编程
从0学习
java并发编程实战
-读书笔记-取消与关闭(7)
要使任务和线程能安全、快速、可靠的停下来,并不是一件容易的事。java没有提供任何机制来安全地终止线程(Thread.stop和suspend等方法提供了这样的功能,但是存在严重缺陷,应该避免使用)。但是java提供了中断(Interruption),这是一种协作机制,能够使一个线程终止另一个线程的当前工作。我们很少希望某个任务、线程或服务立即停止,因为这种立即停止会使共享的数据结构处于不一致的状
伟大的卷发
·
2020-06-21 02:44
java
synchronized
并发
并发编程
同步
从0学习
java并发编程实战
-读书笔记-第一部分总结(5)
总结的内容来自原文的90-91页可变状态是至关重要的。所有的并发问题都可以归结为如何协调对并发状态的访问。可变状态越少,越容易确保线程安全性。尽量将域声明为final类型,除非需要它们是可变的。不可变对象一定是线程安全的。不可变对象能极大的降低并发编程的复杂性。它们更为简单而且安全,可以任意共享而无需使用加锁或保护性复制等机制。封装有助于管理复杂性。在编写线程安全的程序时,虽然可以将所有数据都保存
伟大的卷发
·
2020-06-21 02:13
java
并发编程
并发
synchronized
多线程
从0学习
java并发编程实战
-读书笔记-结构化并发应用程序(6)
在线程中执行任务在理想情况下,任务之间都是相互独立的:任务并不依赖于其他任务的状态,结果或边界效应。独立性有助于实现并发。大多数服务器的应用程序都提供了一个自然的任务边界:以独立的客户请求为边界。串行地执行任务最简单的方式就是在单个线程中串行的执行各项任务。但是现实中的web服务器的情况却并非如此。在web请求中包含了一组不同的运算和I/O操作。服务器必须处理套接字I/O以读取请求和写回响应,这些
伟大的卷发
·
2020-06-21 02:13
java
并发
并发编程
synchronized
多线程
从0学习
java并发编程实战
-读书笔记-基础构建模块(4)
同步容器类同步容器类包括Vector和Hashtable,这两个是早期JDK的一部分。此外还包括在JDK1.2中添加Collections.synchronizedXxx等工厂方法,这些类实现线程安全的方式是:将它们的状态封装起来,并对公有方法进行同步,使得每次只有一个线程能访问容器的状态。同步容器类的问题同步容器类都是线程安全的,但是某些复合操作需要额外的客户端加锁来保护,常见的复合操作:迭代:
伟大的卷发
·
2020-06-21 02:12
java
并发
并发编程
synchronized
多线程
从0学习
java并发编程实战
-读书笔记-对象的组合(3)
设计线程安全的类在设计线程安全类的过程中,需要包涵以下三个基本要素:找出构成对象状态的所有变量找出约束状态变量的不变性条件建立对象状态的并发访问管理策略同步策略(SynchronizationPolicy)定义了如何在不违背对象不变条件或后验条件的情况下对其状态的访问操作进行协同。收集同步需求要确保类的线程安全性,就需要保证它的不变性条件不会在并发访问的情况下被破坏。对象和变量都有一个状态空间,即
伟大的卷发
·
2020-06-21 02:40
synchronized
并发
java
锁
同步
从0学习
java并发编程实战
-读书笔记-对象的共享(2)
要编写正确的并发程序,关键在于:在访问共享的可变状态时,需要进行正确的管理。可见性publicclassNoVisibility{privatestaticbooleanready;privatestaticintnumber;privatestaticclassReaderThreadextendsThread{publicvoidrun(){while(!ready){Thread.yield
伟大的卷发
·
2020-06-21 02:39
java
并发
锁
synchronized
同步
Android高级开发必读书单
(a)基本语法(如继承、异常、引用、泛型等)Java核心技术卷I(适合入门)进阶EffectiveJava中文版(如何写好的Java代码)Java解惑(介绍烂Java代码是什么样的)(b)多线程、并发
Java
NullPoints
·
2020-06-21 00:59
【架构设计】
Java并发编程(八):并发安全
一、什么是线程安全性在《
Java并发编程实战
》中,定义如下:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在调用代码中不需要任何额外的同步或者协同,这个类都能表现出正确的行为
逆风fei扬
·
2020-06-20 23:20
Java后端求职基础学习目录
Java后端求职基础学习目录语言基础《Java核心技术》《Java编程思想》和《EffectiveJava》《深入理解Java虚拟机》《
Java并发编程实战
》数据结构和算法《数据结构和算法推荐》计算机网络
退堂鼓大师
·
2020-06-13 13:40
java
Java并发编程实战
总结 (一)
前提首先该场景是一个酒店开房的业务。为了朋友们阅读简单,我把业务都简化了。业务:开房后会添加一条账单,添加一条房间排期记录,房间排期主要是为了房间使用的时间不冲突。如:账单A,使用房间1,使用时间段为2020-06-0112:00-2020-06-0212:00,那么还需要使用房间1开房的时间段则不能与账单A的时间段冲突。业务类为了简单起见,我把几个实体类都简化了。账单类publicclassBi
Johnson木木
·
2020-06-06 09:00
单例模式与DCL双重校验锁
今天正好学习完了《
Java并发编程实战
》,该书的最后一章讲得就是JMM(Java内存模型),其中就提到了以DCL方式实现单例模式的优缺点。单例模式单例模式的概念就不在这里赘述了。
罪与罚
·
2020-06-01 12:23
java
设计模式
单例模式
从0学习
java并发编程实战
-读书笔记-线程池的使用(8)
#在任务与执行策略之间的隐性耦合Executror框架可以将任务的提交与任务的执行解耦开。但是虽然Executor框架为制定和修改执行策略提供了很大的灵活性,但并非所有的任务都能适用所有的执行策略。有些类型的任务需要明确地制定执行策略,其中包括:依赖性任务:大多数行为正确的任务都是独立的:它们不依赖于其他任务的执行时序、执行结果或其他效果。当在线程池中执行独立任务时,可以任意修改线程池大小和配置,
伟大的卷发
·
2020-05-27 22:56
并发
线程池
java
synchronized
多线程
Java并发编程实战
05等待-通知机制和活跃性问题
Java并发编程系列
Java并发编程实战
01并发编程的Bug源头
Java并发编程实战
02Java如何解决可见性和有序性问题
Java并发编程实战
03互斥锁解决原子性问题
Java并发编程实战
04死锁了怎么办前提在
Johnson木木
·
2020-05-20 09:00
Java实现简单工厂模式—GoF(一)
《大话设计模式》或《研磨设计模式》《重构改善既有代码的设计》《effectivejava》《深入理解Java虚拟机》《
Java并发编程实战
》《深入理解计算机系统》除此之外,闲暇之余多阅读一下JDK源码,
maxzhao_
·
2020-05-14 21:00
19本高并发编程书籍推荐
Java并发编程实战
(java并发的圣经)多处理器编程的艺术(并发编程的各种算法,java实现,有点难度)并发的艺术(多核处理器的共享内存模型中的各种算法)Java虚拟机并发编程(jvm平台上各种语言的并发比较
liuhuiteng
·
2020-05-13 08:42
开发书籍
开发书籍
Java并发编程实战
04死锁了怎么办?
Java并发编程文章系列
Java并发编程实战
01并发编程的Bug源头
Java并发编程实战
02Java如何解决可见性和有序性问题
Java并发编程实战
03互斥锁解决原子性问题前提在第三篇文章最后的例子当中,
Johnson木木
·
2020-05-12 08:00
Java并发编程实战
03互斥锁 解决原子性问题
文章系列
Java并发编程实战
01并发编程的Bug源头
Java并发编程实战
02Java如何解决可见性和有序性问题摘要在上一篇文章02Java如何解决可见性和有序性问题当中,我们解决了可见性和有序性的问题,
Johnson木木
·
2020-05-07 08:00
Java并发编程实战
02Java如何解决可见性和有序性问题
摘要在上一篇文章
Java并发编程实战
01并发Bug的源头当中,讲到了CPU缓存导致可见性、线程切换导致了原子性、编译优化导致了有序性问题。
Johnson木木
·
2020-04-20 10:00
Java并发编程实战
01并发编程的Bug源头
本文为学习极客时间:
Java并发编程实战
01的总结,文章取图也是来自于该文章并发Bug源头在计算机系统中,程序的执行速度为:CPU>内存>I/O设备,为了平衡这三者的速度差异,计算机体系机构、操作系统、
Johnson木木
·
2020-04-14 13:00
一男子给对象转账5000元,居然又退还了!
其中在《
Java并发编程实战
》一书中对线程安全的定义如下:当多个线程访问某个类时,不管运行是环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不
武培轩
·
2020-04-14 12:09
并发
原子性
java
一男子给对象转账5000元,居然又退还了!
其中在《
Java并发编程实战
》一书中对线程安全的定义如下:当多个线程访问某个类时,不管运行是环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不
武培轩
·
2020-04-14 09:00
上一页
6
7
8
9
10
11
12
13
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他