java线程
梵依然
这个作者很懒,什么都没留下…
展开
-
Java线程之Semaphore用法
操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,acquire()获取一个许可,如果没有就等待,而release()释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个数。 Semaphore维护了当前访问的个数,提供同步机制,控制同时访问的个转载 2014-02-12 13:51:19 · 743 阅读 · 0 评论 -
Java线程之Exchanger-兄弟线程的信息交换
如果两个线程在运行过程中需要交换彼此的信息,比如一个数据或者使用的空间,就需要用到Exchanger这个类,Exchanger为线程交换信息提供了非常方便的途径,它可以作为两个线程交换对象的同步点,只有当每个线程都在进入 exchange ()方法并给出对象时,才能接受其他线程返回时给出的对象。 Exchanger的构造方法如下:[java] Exchang转载 2014-02-12 13:49:46 · 726 阅读 · 0 评论 -
Java 并发核心编程
Java 并发核心编程内容涉及:1、关于java并发2、概念3、保护共享数据4、并发集合类5线程6、线程协作及其他 1、关于java并发自从java创建以来就已经支持并发的理念,如线程和锁。这篇指南主要是为帮助java多线程开发人员理解并发的核心概念以及如何应用这些理念。本文的主题是关于具有java语言风格的Thread、synchronized、volat转载 2014-04-16 23:17:09 · 1077 阅读 · 0 评论 -
关于java协程和kilim的一些概念
最近了解了一下基于协程来做异步话的场景。一些基本概念写在这里。 多任务调度方面,操作系统怎么搞的? 一种是抢占式,指操系统给每个任务一定的执行时间片,在到达这个时间片后,如果任务仍然没有释放对CPU的占用,则操作系统强制释放,这是目前多数操作系统实现的方式。 一种是协作式,指操作系统按照任务的顺序来分配CPU,每个转载 2014-04-08 22:30:44 · 874 阅读 · 0 评论 -
JAVA并发数据结构详解
一.BlockingDeque阻塞双端队列(线程安全):注意ArrayDeque和LinkedList仅仅扩展了Deque,是非阻塞类型的双端队列。BlockingQueue单向队列,其内部基于ReentrantLock + Condition来控制同步和"阻塞"/"唤醒"的时机;有如下几个实现类:ArrayBlockingQueue: “浮动相对游标”的数组,来实现有界的转载 2014-04-28 12:30:48 · 2414 阅读 · 0 评论 -
写Java代码分别使堆溢出,栈溢出
我们知道,在JAVA中,可以使用关键字new来创建Java对象。例如,ArrayList list = new ArrayList();实际上,在创建完上面的一个对象后,在JVM中,会把new出来的对象存放在堆内存中,同时,在方法栈中存放着对象的引用关系。如果想要堆溢出,比较简单,可以循环创建对象或大的对象;如果想要栈溢出,可以递归调用方法,这样随着栈深度的转载 2014-06-03 22:40:21 · 1224 阅读 · 0 评论 -
迭代与递归的区别
递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合.使用递归要注意的有两点:1)递归就是在过程或函数里面调用自身;2)在使用递归时,必须有一个明确的递归结束条件转载 2014-06-03 22:41:34 · 685 阅读 · 0 评论