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并发编程实践
一书中有提到,同时并发线程数量等于CPU核心数-1.这个道理很浅显,就是要确保多个线程可以同时并发从而效率达到最高。
sinat_33186733
·
2016-02-18 20:00
java
多线程
java线程安全问题之静态变量、实例变量、局部变量
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《
java并发编程实践
》中所说:写道给线程安全下定义比较困难。
小石头_stone
·
2016-02-01 10:00
java线程安全问题之静态变量、实例变量、局部变量
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《
java并发编程实践
》中所说:写道给线程安全下定义比较困难。
liyantianmin
·
2016-01-28 21:00
java并发编程实践
之安全发布和逸出
前言 多线程并发环境下,线程安全极为重要。往往一些问题的发生都是由于不正确的发布了对象造成了对象逸出而引起的,因此如果系统开发中需要发布一些对象,必须要做到安全发布,以免造成安全隐患。 发布和逸出 所谓发布对象是指使一个对象能够被当前范围之外的代码所使用。所谓逸出是指一种错误的发布情况,当一个对象还没有构造完成时,就使它被其他线程所见,这种情况就称为对象逸出。在我们的日常开发中,
ccfeng2008
·
2016-01-17 21:00
java
并发
安全
发布
java的Iterator
昨天在看《
java并发编程实践
》的时候看到了一句话:”对容器的标准迭代方式都是使用Iterator“,虽然对集合进行迭代,但是想想自己写的代码,似乎又不是这么回事,把这个问题弄明白在网上找了一些资料,直接转过来了
maoyeqiu
·
2016-01-04 19:00
java
iterator
笔记《Java并发编程实战》[1]
《
Java并发编程实践
》笔记1)父线程VS子线程:JVM要等到所有用户线程都结束后才会终止,或者调用System.exit()方法强制终止JVM。如果只有守护线程在运行,则JVM将会自动终止。
xinlan1964
·
2015-12-22 08:00
java
多线程
并发
架构师学习方向
3.学透这三本书:《深入了解JVM的高级特性与最佳实践》、《
Java并发编程实践
》、《大型分布式网站的架构》4.学习Python,Go语言。以此来印证Java语言的优缺点--精
doudou701
·
2015-12-18 09:24
Target
&
Direction
笔记:
java并发编程实践
1
Java 5.0 adds ConcurrentHashMap, a replacement for synchronized hash-based Map implementations, and CopyOnWriteArrayList, a replacement for synchronized List implementations for cases where traversal
·
2015-11-12 11:09
Java并发编程
java线程安全问题之静态变量、实例变量、局部变量
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《
java并发编程实践
》中所说: 写道 给线程安全下定义比较困难。
·
2015-11-11 18:56
java线程
Java并发编程实践
(读书笔记) 任务执行(未完)
任务的定义 大多数并发程序都是围绕任务进行管理的.任务就是抽象和离散的工作单元. 任务的执行策略 1.顺序的执行任务 这种策略的特点是一般只有按顺序处理到来的任务.一次只能处理一个任务,后来其它任务都要等待处理.响应性很糟糕,吞吐量低.系统资源利用率低. 2.显示的为任务创建线程 为每个任务创建对应一个线程,响应快,系统资源利用路高.缺点是资源消
·
2015-11-08 10:38
Java并发编程
java线程安全问题之静态变量、实例变量、局部变量
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《
java并发编程实践
》中所说: 写道 给线程安全下定义比较困难。
·
2015-11-07 10:35
java线程
架构师书单(2010版)
4)《
java并发编程实践
》不可多得并发编程的好书,在淘宝上面淘来的影印的。5)《java加密与解密的艺术》修练这种功夫还是
·
2015-11-02 17:40
架构师
《
Java并发编程实践
》笔记一
相关概念 状态依赖: 如果一个方法的结果作为另一个方法的输入,这就存在状态依赖,状态依赖在多线程状态下如果不采取措施会出现问题。多线程状态下,必须保证在这两个方法调用期间,元素的状态没有改变,一般来说,要做到这点唯一的方法是在调用第一个方法之前独占性的锁定对象,一直到调用后一种方法以后。 临界资源: 一次只允许一个进程访问的资源。 临界区: 访问临界资源的那段
·
2015-10-31 10:07
Java并发编程
转:电子书的集合
www.linuxsir.org/bbs/thread383610.html 深入java虚拟机第二版.pdf: http://www.ctdisk.com/file/7651337
JAVA
·
2015-10-31 10:46
集合
java线程安全问题之静态变量、实例变量、局部变量
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《
java并发编程实践
》中所说: 写道 给线程安全下定义比较困难。
·
2015-10-31 08:55
java线程
Java Concurrency — 原子变量类
《
Java并发编程实践
》第15章原子变量与非阻塞同步机制读书笔记Java中的对共享变量访问的同步机制synchronized内部锁显示锁volatile原子变量volatile变量VS锁volatile
sun927
·
2015-10-25 14:00
java
并发
atomic
程序员书单_java专项进阶篇
download.csdn.net/detail/shenzhq1980/9141119JAVA多线程编程集合http://download.csdn.net/detail/shenzhq1980/9145421
JAVA
逆风、骚年
·
2015-10-22 15:01
《乏味金汤》
Java多线程开发技巧
很多开发者谈到Java多线程开发,仅仅停留在newThread(...).start()或直接使用Executor框架这个层面,对于线程的管理和控制却不够深入,通过读《
Java并发编程实践
》了解到了很多不为我知但又非常重要的细节
凯文加内特
·
2015-10-19 11:00
java并发编程实践
--原子变量、volatile、synchornized
volatile是一种同步的弱形式,volatile变量,它可以确保当一个变量的更新对其他线程的可见性,即修改一个volatile变量时,其他线程是可以获取到修改后的新值。当一个域被声明为volatile类型后,编译器与运行时会监控这个变量:它是共享的,而且对它的操作不会与其他的内在操作一起被重排序。所以读一个volatile变量时,总会返回由某一线程所写入的最新值。
majian_1987
·
2015-10-12 22:00
并发编程
Java并发编程实践
--内部锁可重进入
最近在阅读《
java并发编程实践
》一书。在2.3.2章节里有描述synchronized锁有可重进入的特性。书中描述如下:当一个线程请求其它的线程已经占有的锁时,请求线程将被阻塞。
majian_1987
·
2015-10-12 20:00
并发编程
JAVA并发编程实践
笔记
JAVA并发编程实践
笔记1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量 b, 使共享变量是final类型的 c, 将共享变量的操作加上同步2, 一开始就将类设计成线程安全的
m635674608
·
2015-10-09 00:00
2015年下半年的关注点
一个目标:专攻java并发编程(业余时间)两个方面:java企业级开发和测试驱动编程(工程理论)9月读书计划:1.sql实站(借书)10月读书计划:2.
java并发编程实践
11月读书计划:3.java核心技术高级篇
shengfuqiang
·
2015-09-02 13:00
最近读的书
7.18 深入理解计算机系统大概读了一遍,小节习题基本完成,lab只做了一个二进制炸弹,这本书确实要反复的看7.18-8.06 C++ Primer通读一遍,很多细节上的东西搞不清楚 8.06-8.21
Java
stevenczp
·
2015-09-02 00:00
java并发编程实践
学习笔记
关键字: 原子操作:原子为不可再分操作。 Violation :可见关键字。 Synchronized:内部隐示锁 ReentrantLock:显示锁 ReentrantReadWriteLock:读写锁 final:创建后不变 jmm(java内存模型): 线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问,变量传递 均需要通过主存完成 线程threa
m635674608
·
2015-08-05 08:00
Java并发编程
java并发编程实践
学习笔记
关键字: 原子操作:原子为不可再分操作。 Violation :可见关键字。 Synchronized:内部隐示锁 ReentrantLock:显示锁 ReentrantReadWriteLock:读写锁 final:创建后不变 jmm(java内存模型): 线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问,变量传递 均需要通过主存完成 线程threa
·
2015-08-04 07:00
java
编程
学习
《
Java并发编程实践
》笔记8——Fork/Join框架
《
java并发编程实践
》书中并没有介绍Fork/Join框架,该框架和并发编程关系密切,也是由本书作者之一DougLea在JDK1.7引入,因此作为最后一篇笔记简单介绍。
chjttony
·
2015-07-02 10:43
java技术
《
Java并发编程实践
》笔记8——Fork/Join框架
《
java并发编程实践
》书中并没有介绍Fork/Join框架,该框架和并发编程关系密切,也是由本书作者之一DougLea在JDK1.7引入,因此作为最后一篇笔记简单介绍。
chjttony
·
2015-07-02 10:00
《
Java并发编程实践
》笔记7——非阻塞同步算法
1.锁的劣势:锁是实现线程同步最简单的方式,也是代价最高的方式,其有如下的缺点:(1).重量级:现代JVM对非竞争的锁的获取和释放进行优化,可以根据系统中锁占用的历史数据决定使用自旋还是挂起等待,使得它非常高效。但是如果有多个线程同时请求锁,JVM就需要向操作系统寻求帮助,没有获取到锁的线程可能会被挂起等待,并稍后恢复运行。线程的挂起和恢复会带来很大的上下文切换和调度延时开销。(2).优先级倒置:
chjttony
·
2015-07-02 10:35
java技术
《
Java并发编程实践
》笔记7——非阻塞同步算法
1.锁的劣势:锁是实现线程同步最简单的方式,也是代价最高的方式,其有如下的缺点:(1).重量级:现代JVM对非竞争的锁的获取和释放进行优化,可以根据系统中锁占用的历史数据决定使用自旋还是挂起等待,使得它非常高效。但是如果有多个线程同时请求锁,JVM就需要向操作系统寻求帮助,没有获取到锁的线程可能会被挂起等待,并稍后恢复运行。线程的挂起和恢复会带来很大的上下文切换和调度延时开销。(2).优先级倒置:
chjttony
·
2015-07-02 10:00
《
Java并发编程实践
》笔记6——并发性调优
1.Amdahl定律:Amdahl(阿姆达尔)定律描述了在一个系统中,基于可并行化和串行化的组件各自所占的比重,程序通过获得额外的计算资源,理论上能够加速多少。若F是必须串行化执行的比重,那么在一个N处理器的机器中,通过Amdahl定律计算可以获得理论加速为:Speedupattributes=newHashMap();publicsynchronizedbooleanuserLocationMa
chjttony
·
2015-07-01 14:26
java技术
《
Java并发编程实践
》笔记6——并发性调优
1.Amdahl定律:Amdahl(阿姆达尔)定律描述了在一个系统中,基于可并行化和串行化的组件各自所占的比重,程序通过获得额外的计算资源,理论上能够加速多少。若F是必须串行化执行的比重,那么在一个N处理器的机器中,通过Amdahl定律计算可以获得理论加速为:Speedupattributes=newHashMap(); publicsynchronizedbooleanuserLocation
chjttony
·
2015-07-01 14:00
《
Java并发编程实践
》笔记5——线程活跃性问题及其解决方法
1.死锁的定义及发生条件:死锁就像是两个人过独木桥,在桥中间碰到了,谁也不想让步,结果谁也无法通过。线程A占有锁L时想要获得锁M,而线程B占有锁M并尝试获得锁L,两个线程将永远等待下去,这种情况称为死锁(deadlock),或致命拥抱(thedeadlyembrace)。在并发程序设计中,死锁(deadlock)是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避免。死锁发生的四个必
chjttony
·
2015-06-26 16:33
java技术
《
Java并发编程实践
》笔记5——线程活跃性问题及其解决方法
1.死锁的定义及发生条件:死锁就像是两个人过独木桥,在桥中间碰到了,谁也不想让步,结果谁也无法通过。线程A占有锁L时想要获得锁M,而线程B占有锁M并尝试获得锁L,两个线程将永远等待下去,这种情况称为死锁(deadlock),或致命拥抱(the deadly embrace)。在并发程序设计中,死锁 (deadlock) 是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避免。死锁发生
chjttony
·
2015-06-26 16:00
《
Java并发编程实践
》笔记4——线程池高级
1.估算线程池最优大小:Ncpu = CPU的数量 = Runtime.getRuntime().availableProcessors();Ucpu = 目标CPU的使用率, 0 workQueue, ThreadFactorythreadFactory, RejectedExecutionHandlerhandler){......}ThreadPoolExecutor配置执行策略的参数如下:
chjttony
·
2015-06-26 11:00
《
Java并发编程实践
》笔记3——线程池基础
1.JDK中的Executor框架是基于生产者-消费者模式的线程池,提交任务的线程是生产者,执行任务的线程是消费者。Executor线程池可以用于异步任务执行,而且支持很多不同类型任务执行策略,同时为任务提交和任务执行之间的解耦提供了标准方法。Executor线程池支持如下三种线程执行策略:(1).顺序执行:类似于单线程顺序执行任务,优点是实现简单;缺点是扩展性受限,执行效率低下,例子代码如下:p
chjttony
·
2015-06-25 10:00
《
Java并发编程实践
》笔记2——基础同步类
1.同步容器类复合操作容易出现的问题:JDK中同步容器类包括两部分:早期JDK中的Vector和Hashtable;JDK1.2引入的同步包装类,即由Collections.synchronizedXxx工厂方法创建的容器类。同步容器类都是线程安全的,它们提供的基本操作都是原子操作,但是对于诸如迭代、导航和缺少即加入的条件运算等复合操作来说,通常需要使用额外的客户端加锁进行保护来确保线程安全。(1
chjttony
·
2015-06-23 17:00
《
Java并发编程实践
》笔记1——并发编程基础
1.线程安全定义:当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步及在调用方代码不必做其他的协调,这个类的行为仍然是正确的,那么这个类就被称之为是线程安全的。简言之对于线程安全类的实例进行顺序或并发的一系列操作,都不会导致实例处于无效状态。只有对象状态可变,且存在对象共享,才需要考虑线程安全。可以通过下面的方法来确保线程安全:(1).无状态对象:无状
chjttony
·
2015-06-23 15:00
Java并发编程实践
第一章 介绍线程的优点使用多处理器对异步事件的处理用户界面的更加响应性线程的风险 1.安全危险 2.活跃度危险 3.性能危险线程无处不在1.定时器2.JSP3.RMI4.Swing和AWT 第二章 线程安全编写线程安全的代码,本质上就是管理对状态的访问,而通常都是共享的、可变的状态 无论何时,只要有多余一个的线程访问给定的状态变量,而且其中某个线程会写入该变量,此时必须使用同步来协调线程对该变
我是小小鸟
·
2015-04-22 14:00
Java并发编程
Java并发编程实践
第一章 介绍线程的优点使用多处理器对异步事件的处理用户界面的更加响应性线程的风险 1.安全危险 2.活跃度危险 3.性能危险线程无处不在1.定时器2.JSP3.RMI4.Swing和AWT 第二章 线程安全编写线程安全的代码,本质上就是管理对状态的访问,而通常都是共享的、可变的状态 无论何时,只要有多余一个的线程访问给定的状态变量,而且其中某个线程会写入该变量,此时必须使用同步来协调线程对该变
我是小小鸟
·
2015-04-22 14:00
Java并发编程
java并发-线程饥饿死锁测试
线程饥饿死锁 《
Java并发编程实践
》中对线程饥饿死锁的解释是这样的:在使用线程池执行任务时,如果任务依赖于其他任务,那么就可能产生死锁问题。
wojiushiwo945you
·
2015-04-21 13:00
并发
线程池
死锁问题
java并发-协作对象之间死锁测试
《
java并发编程实践
》
wojiushiwo945you
·
2015-04-17 15:00
并发
死锁问题
java并发-锁顺序死锁问题
整理《
java并发编程实践
wojiushiwo945you
·
2015-04-17 09:00
java
并发
死锁问题
java并发之如何向已有的线程安全类添加新功能--
java并发编程实践
添加一个新原子操作的最安全的方式是,修改原始的类,以支持期望的操作。但是你可能无法访问源代码或者没有修改的自由,所以通常是不可能的。即使你可以修改原始的类,也需要理解其实现的同步策略,才能在维持原有设计的前提下完善它的功能。直接向类中加入新方法,意味着所有实现类同步策略的代码仍然包含在一个源代码文件中,因此便于理解与维护。 另一种方法是扩展这个类。因为扩展后,同步策略
Beaver_
·
2015-04-05 16:00
java并发编程实践
java之不可变对象--
java并发编程实践
创建后状态不能修改的对象叫做不可变对象。不可变对象天生是线程安全的。它们的常量(域)是在构造函数中创建的。既然它们的状态无法修改,这些常量永远不会变。 不可变对象永远是线程安全的。 只有满足如下状态,一个对象才是不可变的;它的状态不能在创建后再被修改;所有域都是final类型;并且,它被正确创建(创建期间没有发生this引用的逸出)。
Beaver_
·
2015-04-05 11:00
java并发编程实践
java之不可变对象
java并发之volatile--
java并发编程实践
加锁可以保证可见性与原子性;volatile变量只能保证可见性。只有满足了下面所有的标准后,你才能使用volatile变量:写入变量时并不依赖变量的当前值;或者能够确保只有单一的线程修改变量的值;变量不需要与其它的状态变量共同参与不变约束;而且,访问变量时,没有其他原因需要加锁。 volatile变量固然方便,但也有限制。它们通常被当作标识完成、中断、状态的标记使用(可以看一些框架如spring
Beaver_
·
2015-04-05 11:00
volatile
java并发编程实践
java并发之volatile
java并发之重入锁(Reentrancy)--
java并发编程实践
当一个线程请求其他线程已经占有的锁时,请求线程将被阻塞。然而内部锁是可重进入的,因此线程在试图获得它自己占有的锁时,请求会成功。重进入意味着锁的请求是基于”每线程“,而不是基于”每调用“的。重进入的实现是通过为每个锁关联一个请求计数和一个占有它的线程。当计数为0时,认为锁是未被占有的。线程请求一个未被占有的锁时,jvm讲记录锁的占有者,并且讲请求计数器置为1。如果同一个线程再次请求
Beaver_
·
2015-04-05 10:00
java并发之重入锁
Reentrancy
java并发编程实践
java并发之线程安全---
java并发编程实践
当多个线程访问同一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步及在调用方代码不必做其他的协调,这个类的行为仍然是正确的,那么称这个类是线程安全的。 无状态的对象永远是线程安全的。无状态的对象不包含域,也没有引用其他类或对象的域。一次特定计算的瞬时状态,会唯一地存在本地变量中,这些本地变量存储在线程的栈中,只有执行线程才能访问。
Beaver_
·
2015-04-05 09:00
线程安全
java并发编程实践
java并发之线程安全
无状态的对象
java线程安全-
java并发编程实践
编写线程安全的代码,本质上就是管理对状态的访问,而且通常是共享的、可变的状态。 通俗地说,一个对象的状态就是它的数据,存储在状态变量中,比如实例域或静态域。对象的状态还包括了其他附属对象域。例如,HashMap的状态一部分存储到对象本身中,但同时也存储到很多Map.Entry对象中。一个对象的状态包含了任何对它外部可见行为产生影响的数据。 所谓共享,是指
Beaver_
·
2015-04-05 09:00
java线程安全
共享的
可变的状态
Java Concurrency In Price(
Java并发编程实践
)范例代码编写
阅读更多阻塞队列和生产者-消费模式示例:桌面搜索结合程序清单5-8程序清单5-9程序清单5-9程序清单7-11程序清单7-18程序清单7-19importjava.io.File;importjava.io.FileFilter;importjava.nio.file.Paths;importjava.util.Map;importjava.util.concurrent.BlockingQueu
ksgimi
·
2015-04-02 17:00
Java Concurrency In Price(
Java并发编程实践
)范例代码编写
阻塞队列和生产者-消费模式 示例:桌面搜索 结合 程序清单5-8 程序清单5-9 程序清单5-9 程序清单7-11 程序清单7-18 程序清单7-19 import java.io.File; import java.io.FileFilter; import java.nio.file.Paths; import java.util.Map; import ja
ksgimi
·
2015-04-02 17:00
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他