随笔分类 -  thread

摘要:JDK1.5 AtomicLong实例类 AtomicLong可以用原子方式更新的 long 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicLong 可用在应用程序中(如以原子方式增加的序列号),并且不能用于替换 Long。但是,此类确实扩展了 Number,允许那些处理基于数字类的工具和实用工具进行统一访问。常见方法long addAndGet(long delta):以原子方式将给定值与当前值相加。boolean compareAndSet(long expect, long update):如果当前值 == 预期值,则以原 阅读全文
posted @ 2013-06-26 17:09 悟寰轩-叶秋 编辑
摘要:ExecutorService建立多线程的步骤:1。定义线程类class Handler implements Runnable{}2。建立ExecutorService线程池ExecutorService executorService =Executors.newCachedThreadPool();或者int cpuNums = Runtime.getRuntime().availableProcessors();//获取当前系统的CPU 数目ExecutorService executorService=Executors.newFixedThreadPool(cpuNums * PO 阅读全文
posted @ 2013-06-26 17:06 悟寰轩-叶秋 编辑
摘要:三个区别:1、接收的参数不一样2、submit有返回值,而execute没有Method submit extends base method Executor.execute by creating and returning a Future that can be used to cancel execution and/or wait for completion.用到返回值的例子,比如说我有很多个做validation的task,我希望所有的task执行完,然后每个task告诉我它的执行结果,是成功还是失败,如果是失败,原因是什么。然后我就可以把所有失败的原因综合起来发给调用者。个人 阅读全文
posted @ 2013-06-26 17:05 悟寰轩-叶秋 编辑
摘要:在java中可有两种方式实现多线程,一种是继承 Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的 run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: package org.thread.demo; class MyThread extends Thread{ private String name; public MyThread(String name) { super(); this.name = name; } public ... 阅读全文
posted @ 2013-06-26 17:04 悟寰轩-叶秋 编辑
摘要:并发库中的BlockingQueue是一个比较好玩的类,顾名思义,就是阻塞队列。该类主要提供了两个方法put()和take(),前者将一个对象放到队列中,如果队列已经满了,就等待直到有空闲节点;后者从head取一个对象,如果没有对象,就等待直到有可取的对象。下面的例子比较简单,一个读线程,用于将要处理的文件对象添加到阻塞队列中, 另外四个写线程用于取出文件对象,为了模拟写操作耗时长的特点,特让线程睡眠一段随机长度的时间。另外,该Demo也使用到了线程池和原子整型 (AtomicInteger),AtomicInteger可以在并发情况下达到原子化更新,避免使用了synchronized,而且性 阅读全文
posted @ 2013-03-13 11:54 悟寰轩-叶秋 阅读(12341) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示