<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bbgb1984的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bbgb1984</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bbgb1984]]></copyright><item><title><![CDATA[java经典面试题-2个线程同时对j加，2个线程同时对就减]]></title><link>https://blog.youkuaiyun.com/bbgb1984/article/details/8517503</link><guid>https://blog.youkuaiyun.com/bbgb1984/article/details/8517503</guid><author>bbgb1984</author><pubDate>Fri, 18 Jan 2013 15:29:52 +0800</pubDate><description><![CDATA[package main.finals;

public class ThreadShareDataTest {

	/**
	 * @param args
	 */
	private static ShareDatas shareDate = new ShareDatas();

	public static void main(String[] args) {
//		实现方法一
		for]]></description><category></category></item><item><title><![CDATA[java CyclicBarrier(关卡)详解]]></title><link>https://blog.youkuaiyun.com/bbgb1984/article/details/8473269</link><guid>https://blog.youkuaiyun.com/bbgb1984/article/details/8473269</guid><author>bbgb1984</author><pubDate>Sun, 06 Jan 2013 15:32:45 +0800</pubDate><description><![CDATA[一个同步辅助类，它允许一组线程互相等待，直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中，这些线程必须不时地互相等待，此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用，所以称它为循环 的 barrier。 在并行迭代算法中非常有用，这个算法会把一个问题拆分成一系列相互独立的子问题，当线程到达公共屏障点时]]></description><category></category></item><item><title><![CDATA[java Semaphore使用详解]]></title><link>https://blog.youkuaiyun.com/bbgb1984/article/details/8472109</link><guid>https://blog.youkuaiyun.com/bbgb1984/article/details/8472109</guid><author>bbgb1984</author><pubDate>Sun, 06 Jan 2013 11:31:27 +0800</pubDate><description><![CDATA[从概念上讲，信号量维护了一个许可集合。如有必要，在许可可用前会阻塞每一个 acquire()，然后再获取该许可。每个 release() 添加一个许可，从而可能释放一个正在阻塞的获取者。但是，不使用实际的许可对象，Semaphore 只对可用许可的号码进行计数，并采取相应的行动。


Semaphore 通常用于限制可以访问某些资源（物理或逻辑的）的线程数目


将信号量初始化为 1，]]></description><category></category></item><item><title><![CDATA[FutureTask详解]]></title><link>https://blog.youkuaiyun.com/bbgb1984/article/details/8471873</link><guid>https://blog.youkuaiyun.com/bbgb1984/article/details/8471873</guid><author>bbgb1984</author><pubDate>Sun, 06 Jan 2013 10:32:25 +0800</pubDate><description><![CDATA[FutureTask类是Future 的一个实现，并实现了Runnable，所以可通过Excutor(线程池) 来执行,也可传递给Thread对象执行。如果在主线程中需要执行比较耗时的操作时，但又不想阻塞主线程时，可以把这些作业交给Future对象在后台完成，当主线程将来需要时，就可以通过Future对象获得后台作业的计算结果或者执行状态。 


Executor框架利用FutureTask]]></description><category></category></item><item><title><![CDATA[闭锁CountDownLatch的简单实现]]></title><link>https://blog.youkuaiyun.com/bbgb1984/article/details/8467991</link><guid>https://blog.youkuaiyun.com/bbgb1984/article/details/8467991</guid><author>bbgb1984</author><pubDate>Sat, 05 Jan 2013 11:38:43 +0800</pubDate><description><![CDATA[public class TestCountDownLatch {
    public static void execute() throws InterruptedException{
        final int n = 3;
        final CountDownLatch start = new CountDownLatch(1);
        final C]]></description><category></category></item></channel></rss>