- 博客(16)
- 收藏
- 关注
原创 Redis(1)-用redis存储商品-用户关系
package com.lipeng;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util
2015-05-23 20:09:42 4776
原创 Java多线程与并发应用-(11)-用Lock+Condition实现1,2,3 三个模块按顺序执行。
package com.lipeng;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 实现1,2,3模块按顺序执行 * * @author LP *
2015-05-02 12:14:38 1323
原创 Java多线程与并发应用-(10)-java阻塞队列实现ArrayBlockingQueue
ArrayBlockingQueue是阻塞队列接口BlockingQueue的一种实现。它的读有三种情况:1.如果读不到立即返回空,2.如果读不到等待直到返回结果(或超时,抛异常),3.如果读不到数据抛出异常相对应的,1.容器满了无法写入直接返回false,2.等待,直到可以写入(或超时,抛异常),3.无法写入直接抛出异常。例子:package com.lipeng;import
2015-05-02 11:53:42 771
原创 Java多线程与并发应用-(9)-锁lock+条件阻塞conditon实现线程同步通信
一. lock可以代替synchronized关键字实现互斥功能。使用方法如下:Lock l = ...; l.lock(); try { // access the resource protected by this lock } finally { l.unlock(); }需要注意的是。1.需要
2015-05-02 11:02:16 1461
原创 Java多线程与并发应用-(8)-Callable和Future
demo1: 使用FutureTask和Callable,获取一个线程的返回值。在获取返回值前可以做其他事,在Future.get()时阻塞,也可调用get(long timeout, TimeUnit unit)方法设置在等待long时间后如果还没有返回值抛出异常。package com.lipeng;import java.util.concurrent.Callable;i
2015-04-28 23:51:50 719
转载 Java多线程与并发应用-(7)-线程池
文章转自:http://blog.csdn.net/ghsau/article/details/7443324自JDK5之后,Java推出了一个并发包,java.util.concurrent,在Java开发中,我们接触到了好多池的技术,String类的对象池、Integer的共享池、连接数据库的连接池、Struts1.3的对象池等等,池的最终目的都是节约资源,以更小的开销做更多的事情,从而提
2015-04-28 23:13:54 545
原创 Java多线程与并发应用-(6)-多个线程之间共享对象和数据的方式
此内容来自张孝祥老师的java多线程与并发库高级应用如果多个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据。如果多个线程执行的代码不同,这时候需要用不同的Runnable对象。将共享对象封装在另一个对象中,然后将这个对象逐一传给各个Runnable对象。每个线程对共享数据的操作方法也分配到那个对象身上去完成,这样容易实现针对该对象进行各个操
2015-04-23 23:41:31 2963
原创 Java多线程与并发应用-(5)-如何优雅的使用ThreadLocal类
内容来自,张孝祥老师的张孝祥-Java多线程与并发库高级应用》视频教程package com.lipeng;public class MyThreadLocalTest2 { private final static MyThreadLocal myThreadLocal=new MyThreadLocal(); /** * @param args */ public st
2015-04-23 21:12:51 889
原创 Java多线程与并发应用-(4)-传统线程通信技术试题
package com.lipeng;public class LoopDemo { /** * 线程A循环10次,然后线程B循环100次,然后A再循环10次,然后B再循环100次。如此循环50次。 * lipeng * 2015-4-10 * @param args */ public static void main(String[] args) { MyTa
2015-04-14 21:28:25 775
原创 Java多线程与并发应用-(3)-传统线程通信技术及生产者消费者模式
生产者/消费者问题是一个经典的线程同步以及通信的案例。该问题描述了两个共享固定大小缓冲区的线程,即所谓的“生产者”和“消费者”在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。要解决该问题,就必须让生产者在缓冲区满时休眠(要么干脆
2015-04-13 23:48:30 757
原创 Java多线程与并发应用-(2)-线程互斥synchronized
首先请看下面的例子:package com.lipeng;public class SynchronizedDemo { public static void main(String[] args) { final Print print=new Print(); for(int i=0;i<1000;i++) { new Thread(){ @Override
2015-04-09 21:04:44 1668
转载 Eclipse设置不格式化注释
Eclipse设置不格式化注释 注释中写点带格式的文字,format后全乱了,解决办法如下: Windows -> Preferces -> java -> Code Style -> Formatter -> Edit -> Comments 取消勾选“Enable Javadoc comment formatting”. 整个世界安静了.....
2014-05-14 22:49:52 14193 4
原创 容易被我忽略的Eclipse功能
一:调试1.条件断点。2.Change Value.改变某个属性,使条件成立,继续往下执行3.Display视图,可以在空白处写任意代码,右键execute(或ctrl+u)在当前断点处执行。可以使用当前断点处可使用的任意变量。4.变量视图是使用toString()方法来显示一个对象的值,如果是显示不可变toString方法的类型,可以在变量视图中右击某个对象,然后点击“New D
2013-09-23 21:32:38 695
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人