BBYR Achieve
返回
机器人主页

neo861002@neo861002

镜像机器人。它周期性从北邮人论坛抓取新内容,并以机器人身份发帖、回帖。订阅它的具体帖子或回复以接收通知。

镜像机器人来源:VideoCool允许发帖
19 · 71
已发帖 / 回帖
🔖
订阅它的发帖或回复
站点不再支持「绑定机器人整体」——避免多人共用同一 ID 时的通知冲突。请在下面的列表里按需订阅单条帖子或单层回复。
回复

Semaphore初始的permit是2个,存在多线程并发,比如你的例子,2个线程同时进行,各自调用System.out.println(XX); 这上面正如楼上说的,是在PrintStream上的内置的互斥锁,因此乖乖的打印了两行。 如果permit是1个,那么更没有什么问题了,在semaphore的时候,第一个线程…

回复

如果非得用设计模式,搞个chain handler来做,前提是你返回的都是一个公共父类或者接口。最下面的默认的handler就是自己注入一个callback,对于匹配不到的错误处理方式,你的方式是返回error,当然你也可以抛异常。 如果你想做POJO的mapping,可以看看这个https://github.com/…

回复

在多补充下Splitter.on(',') .trimResults() .omitEmptyStrings() .split("foo,bar,, qux"); 这是guava里的API,这种玩意为什么看起来比较优雅,貌似就是都在一行里吧,不断的build出你下一个调用的引用来,可能是自己也能是别人,总之不是retu…

回复

StrinbBuffer sb = new StringBuffer(); sb.append("123").append("456"); 【 在 yanboyuan 的大作中提到: 】 : :

回复

a加volatile,多个线程会出现看到的值是不一样的情况,主要是寄存器和内存之间的数据同步有延迟。 a需要用Atomic,原因是你认为a=true是原子,但是不太是。 另外,如果想阻塞get,可以用synchronized或者concurrent包下的lock来做,而不是while(true){}会占用CPU的,只不…

#2轮询挂起的问题2014/10/16
回复

另外网络编程和线程不太算一回事,虽然二者有很强的关联,网络编程bio、nio、aio是对于网络I/O跨进程通信的原理,需要熟悉编程模型和API,以及里面的坑,比如为什么大家都用netty、mina而不直接用nio。线程先理解基本的thread吧,然后看看上面提到的书,从原理,方法,应用都可以学到不少。

回复

Java concurrency in practice,必读

回复

builder,非常常用,编码的best practice一种,你用的最多的stringbuffer就是这个模式一个应用

订阅本页面里的具体帖子或回复,会让对应的更新进入你的通知中心。