一、进程 1、multiprocessing模块实现多进程并发。 1.1multiprocessing包是Python中的多进程管理包,与threading.Thread类似,它可以利用multiprocessing.Process对象来创建一个进程 该进程可以运行在Python程序内部编写的函数, ...
分类:
编程语言 时间:
2017-07-20 18:53:50
阅读次数:
323
写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包的的线程池(Java并发编程与技术内幕:线程池深入理解),或者看这个专栏:Java并发编程与技术内幕。你将 ...
分类:
编程语言 时间:
2017-07-19 01:07:28
阅读次数:
191
转自:http://www.knowsky.com/889710.html http://blog.csdn.net/ghsau/article/details/7461369/ 很好可以看下 实现Lock接口的基本思想 需要实现锁的功能,两个必备元素,一个是表示(锁)状态的变量(我们假设0表示没有 ...
分类:
编程语言 时间:
2017-07-12 17:47:37
阅读次数:
252
ReentrantLock重入锁 ReentrantLock是Java并发包中互斥锁,它有公平锁和非公平锁两种实现方式, 重入的意思就是,如果已经获得了锁,如果执行期间还需要获得这个锁的话,会直接获得所,不会被阻塞,获得锁的次数加1;每执行一次unlock,持有锁的次数减1,当为0时释放锁。这点,S... ...
分类:
其他好文 时间:
2017-07-08 17:48:35
阅读次数:
146
应该将子类定义为非公共内部帮助器类,一般并发包类用内部类Sync sync来继承并实现。为实现依赖于先进先出 (FIFO) 等待队列的阻塞锁和相关同步器(信号量、事件,等等)提供一个框架。此类的设计目标是成为依靠单个原子 int 值来表示状态的大多数同步器的一个有用基础。子类必须定义重写此状态的受保... ...
分类:
其他好文 时间:
2017-07-08 17:45:51
阅读次数:
187
ReentrantLock (重入锁) 特点 1可重入(可以多次加锁,多次解锁) 2可限时(可以避免死锁,如果在给给定时间内没有获取到锁,那么就去做其他事情 并且释放自己的资源) 3公平锁(能够按照先后顺序去获取锁 但是会因影响性能) Semaphore(信号量) CountDownLatch (计 ...
分类:
其他好文 时间:
2017-06-27 20:05:13
阅读次数:
129
关于AbstractQueuedSynchronizer JDK1.5之后引入了并发包java.util.concurrent,大大提高了Java程序的并发性能。关于java.util.concurrent包我总结如下: AbstractQueuedSynchronizer是并发类诸如Reentra ...
分类:
其他好文 时间:
2017-06-23 00:46:44
阅读次数:
289
jdk1.7.0_79 对于线程池大部分人可能会用,也知道为什么用。无非就是任务需要异步执行,再者就是线程需要统一管理起来。对于从线程池中获取线程,大部分人可能只知道,我现在需要一个线程来执行一个任务,那我就把任务丢到线程池里,线程池里有空闲的线程就执行,没有空闲的线程就等待。实际上对于线程池的执行 ...
分类:
编程语言 时间:
2017-06-16 10:05:37
阅读次数:
138
一、Executor框架 为了更好的控制多线程,jdk提供了一套线程框架Executor,帮助开发人员有效地进行线程控制。他们都在java.util.concurrent包中,是jdk并发包的核心。其中有一个比较重要的类:Executors,他扮演者线程工厂的角色,我们通过Executors创建特定 ...
分类:
编程语言 时间:
2017-06-14 11:28:48
阅读次数:
220
在上文《10.并发包阻塞队列之ArrayBlockingQueue》中简要解析了ArrayBlockingQueue部分源码,在本文中同样要介绍的是Java并发包中的阻塞队列LinkedBlockingQueue。ArrayBlockingQueue队列是由数组实现,而LinkedBlockingQ ...
分类:
数据库 时间:
2017-06-14 02:43:00
阅读次数:
217