在Fork/Join框架中,提交任务的时候,有同步和异步两种方式。以前使用的invokeAll()的方法是同步的,也就是任
务提交后,这个方法不会返回直到所有的任务都处理完了。而还有另一种方式,就是使用fork方法,这个是异步的。也
就是你提交任务后,fork方法立即返回,可以继续下面的任务。这个线程也会继续运行。
下面我们以一个查询磁盘的以log结尾的文件的程序例子来说明异步的用法...
分类:
编程语言 时间:
2014-10-09 01:43:47
阅读次数:
117
synchronized 是java 内主要的同步标记1 同步非静态方法 作用域范围只是当前对象在不同线程间的同步, 如果n 为Test外的对象,在不同的Test对象之间,等于没有同步, 该方法只能同步n为Test类内对象 public class Test public synchroni...
分类:
编程语言 时间:
2014-10-08 10:20:15
阅读次数:
265
1.以前使用线程API并没有返回结果,Callable/Future/FutureTask正是解决了此问题,并在调用过程中
作出对异常的捕获
-Callable执行call()方法返回Object对象,也可抛出异常;调用
Callable并不像Thread,而是调用 Future ExecutorService.submit(Callable task);
-Future 返回值,调用该接...
分类:
编程语言 时间:
2014-10-07 18:09:53
阅读次数:
279
/*@authorshijin*生产者与消费者模型中,要保证以下几点:*1同一时间内只能有一个生产者生产生产方法加锁sychronized*2同一时间内只能有一个消费者消费消费方法加锁sychronized*3生产者生产的同时消费者不能消费生产方法加锁sychronized*4消费者消费的同时生产者...
分类:
编程语言 时间:
2014-10-07 15:05:33
阅读次数:
203
java线程池是预先创建线程的一种技术,线程池在还没有线程到来之前创建一个数量的线程,放在空闲的队列中,然后对这些资源进行复用,减少频繁的创建和销毁对象,
1.jdk1.5以上提供了现成的线程池
2.java线程池的顶级接口是Executor,是一个执行线程的工具
3.线程池接口是ExecutorService...
分类:
编程语言 时间:
2014-10-07 14:07:23
阅读次数:
218
1 package producer; 2 3 public class SyncStack { 4 int index =0; 5 SteamedBun[] bunArr = new SteamedBun[6]; //栈里只能放6个元素 6 7 ...
分类:
编程语言 时间:
2014-10-07 13:11:23
阅读次数:
228
Java程序设计实用教程 by 朱战立 & 沈伟学习笔记之JAVA多线程(http://www.cnblogs.com/pegasus923/p/3995855.html)国庆休假前学习了多线程,休假花了两天时间把整本书学完了。
分类:
编程语言 时间:
2014-10-05 01:52:17
阅读次数:
209
一、sleep和wait的区别。1.wait可以指定时间,也可以不指定。而sleep必须制定。2.在同步的时候,对于CPU的执行权和以及锁的处理不同。wait:释放执行权,释放锁。sleep:释放执行权,不释放锁。二、线程是否安全? 1 class Test implements Runnable ...
分类:
编程语言 时间:
2014-10-04 02:32:05
阅读次数:
237
在多线程的情况下,因为同一进程的多个线程共享同一片存储空间,在带来方便的同一时候,也带来了訪问冲突这个严重的问题。Java语言提供了专门机制以解决这样的冲突,有效避免了同一个数据对象被多个线程同一时候訪问。wait与notify是java同步机制中重要的组成部分。结合与synchronizedkey...
分类:
编程语言 时间:
2014-10-03 14:01:54
阅读次数:
190
java多线程synchronized、volatile
分类:
编程语言 时间:
2014-10-02 18:06:13
阅读次数:
334