[笔记][Java7并发编程实战手册]系列目录简介本文继续学习信号量Semaphore机制。 
在3.2中其实已经讲解完了,之前对于信号量并发的使用场景不知道,看了本章节才想到一些; 
下面就以 租车为列子来讲解并发访问的控制。(示例都很简单或许不符合现实逻辑)
信号量(非二进制信号量)是不保证同步的,需要额外的同步
示例场景:有一个出租车公司,有三台车,有十个司机,每个司机工作的时间不一致,可以说...
                            
                            
                                分类:
编程语言   时间:
2015-08-17 23:47:17   
                                阅读次数:
277
                             
                         
                    
                        
                            
                            
                                1、TWR 自动关闭资源 ? ? 自动关闭资源必须要注意书写规范,所有需要关闭的资源必须使用一个变量声明出来并且写在try的小括号块中,不是大括号。如下代码: ? ? try(??InputStream is = new FileInputStrea...
                            
                            
                                分类:
编程语言   时间:
2015-08-17 14:13:46   
                                阅读次数:
190
                             
                         
                    
                        
                            
                            
                                [笔记][Java7并发编程实战手册]系列目录简介本文学习信号量Semaphore机制。Semaphore
本质是一个共享锁
内部维护一个可用的信号集,获取信号量之前需要先申请获取信号数量;用完之后,则需要释放信号量;如果不释放,那么其他等待线程则一直阻塞直到获取信号量或则被中断为止
本人的理解是:互斥锁是同一时间只能一个线程访问,而在这里,是同一时间允许获取到了信号量的线程并发访问,而没有获取到信...
                            
                            
                                分类:
编程语言   时间:
2015-08-13 23:47:22   
                                阅读次数:
264
                             
                         
                    
                        
                            
                            
                                [笔记][Java7并发编程实战手册]系列目录有点着急了,没有太注重质量,自己也没有理解透,从本章起,读书和随笔笔记的质量会更好。第三章在本章中,我们将学习: 
1. 资源的并发访问控制 
2. 资源的多副本的并发访问控制 
3. 等待多个并发事件的完成 
4. 在集合点的同步 
5. 并发阶段任务的运行 
6. 并发阶段任务中的阶段交换 
7. 并发任务间的数据交换回顾在第二章中主要学习了以下接口...
                            
                            
                                分类:
编程语言   时间:
2015-08-13 22:15:21   
                                阅读次数:
179
                             
                         
                    
                        
                            
                            
                                概要接上一篇文章,练习修改锁的公平性,和在所中使用条件。修改锁的公平性ReentrantLock    /**
     *构造一个锁对象,默认为非公平锁
     */
    public ReentrantLock(boolean fair) {
        sync = fair ? new FairSync() : new NonfairSync();
    }根据Reentrant...
                            
                            
                                分类:
编程语言   时间:
2015-08-11 23:26:52   
                                阅读次数:
243
                             
                         
                    
                        
                            
                            
                                Java7并发编程实战手册 这一本实战的书籍。我觉得能给我更好的感觉。我觉得先看博客中转载的多线程系列 Java多线程系列-目录源码分析和理论。有时候真的觉得好烦躁。可是,没有这些理论实战中又觉得太多的未知。 
所以本人觉得。先粗略的过一遍理论和源码分析。再来看学习实战,在写代码的过程中,去回想和联想理论就能更好的把知识串联起来了;[笔记][Java7并发编程实战手册]2.2使用syncronize...
                            
                            
                                分类:
编程语言   时间:
2015-08-11 23:24:45   
                                阅读次数:
166
                             
                         
                    
                        
                            
                            
                                lock详细解说请参考:Java多线程系列–“JUC锁”01之 框架lock接口
是同步代码块的另一种机制,比synchronized关键字更强大也更灵活
提供了许多新功能,例如:tryLock()方法,这个方法试图获取锁,如果锁已被其他线程获取,它将返回false并往下继续执行代码。而使用synchronized,如果线程A试图执行一个同步代码块,如果B线程已经在执行这个代码块了,线程A将被挂起。...
                            
                            
                                分类:
编程语言   时间:
2015-08-09 17:10:22   
                                阅读次数:
185
                             
                         
                    
                        
                            
                            
                                说明在并发编程中一个典型的问题是生产者–消费者问题。在程序中,有可能会需要用到两个线程通信的情况,比如生产者消费者中,获取一个共享数据,有就消费。没有就等待着生产者生产之后再继续消费。那么这个实现过程就可以使用wait();notify();notifyAll()来达到效果; 
以上方法详细解说请查看: Java多线程系列–“基础篇”05之 线程等待与唤醒例子/**
 * Created by zh...
                            
                            
                                分类:
编程语言   时间:
2015-08-08 18:15:44   
                                阅读次数:
223
                             
                         
                    
                        
                            
                            
                                学习多线程之前,我觉得很有必要去学习下 
[笔记][思维导图]读深入理解JAVA内存模型整理的思维导图基础知识
锁除了让临界区互斥执行外, 
还可以让释放锁的线程向获取同一个锁的线程发送消息
当线程获取锁时,JMM会把该线程对应的本地内存置为无效。 
从而使得监视器保护的临界区代码必须要从主内存中去读取共享变量。
当线程释放锁时,JMM会把该线程对应的本地内存中的共享变量刷新到主内存中。
在同一个类...
                            
                            
                                分类:
编程语言   时间:
2015-08-08 13:36:20   
                                阅读次数:
199
                             
                         
                    
                        
                            
                            
                                在Ubuntu中可以配置 android source 编译环境,推荐使用最新的64位的Ubuntu LTS(Long Time Support);1.安装JDK。 AOSP主分支代码需要java7,在Ubuntu上可以使用 OpenJDK。安装java7的命令:$ sudo apt-get upd...
                            
                            
                                分类:
移动开发   时间:
2015-08-05 12:32:06   
                                阅读次数:
207