摘要: Semaphore(信号量):是一种计数器,用来保护一个或者多个共享资源的访问。如果线程要访问一个资源就必须先获得信号量。如果信号量内部计数器大于0,信号量减1,然后允许共享这个资源;否则,如果信号量的计数器等于0,信号量将会把线程置入休眠直至计数器大于0.当信号量使用完时,必须释放。 实例代码: 阅读全文
posted @ 2016-04-22 19:26 简单爱_wxg 阅读(21862) 评论(0) 推荐(3)
摘要: Condition 将 Object 监视器方法(wait()、notify()和notifyAll())分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待 set(wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Con 阅读全文
posted @ 2016-04-22 17:57 简单爱_wxg 阅读(2965) 评论(0) 推荐(0)
摘要: 原文链接:http://www.cnblogs.com/dolphin0520/p/3923167.html 一.synchronized的缺陷 我们知道如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里 阅读全文
posted @ 2016-04-22 17:36 简单爱_wxg 阅读(484) 评论(0) 推荐(0)
摘要: 临界区:是一个用以访问共享资源的代码块,这个代码块在同一时间内只允许一个线程执行。 wait():必须在同步代码块中调用,如果在同步代码块外调用,JVM将抛出IllegalMonitorStateException异常。当一个线程调用wait()方法,JVM将这个线程休眠,并且释放控制这个同步代码块 阅读全文
posted @ 2016-04-22 11:05 简单爱_wxg 阅读(408) 评论(0) 推荐(0)
摘要: ①定义线程组 ThreadGroup类中有 2个构造方法,它们用来定义线程组。这 2个构造方法的使用格 式如下: 比如,创建一个名为fruit的线程组k,可用如下语句: 如果一个线程组有父线程组,则可以在定义时,用第二个构造方法指出父线程组的名字。比如: ②获得线程组中的信息 ThreadGroup 阅读全文
posted @ 2016-04-22 10:00 简单爱_wxg 阅读(786) 评论(0) 推荐(0)