概述首先来说一说java连接池中常用到的几个类:Executor,ExecutorService,ScheduledExecutorServiceExecutor执行已经提交的Runnable任务对象。此接口提供了将任务提交和任务执行分离的机制。ExecutorService它是Executor的子...
分类:
编程语言 时间:
2014-08-27 16:24:07
阅读次数:
212
1最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟们的见解后做了下总结。1.JAVA多线程实现方式JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程...
分类:
编程语言 时间:
2014-08-26 21:18:26
阅读次数:
273
Executor框架将工作单元划分为任务,即任务是逻辑上的工作单元,而线程是任务异步执行的机制。Runnable是任务的一个抽象,并且理想状态下任务是独立的执行,但是Runnable的run( )不能返回一个结果或者抛出一个受检查的异常,这与我们有些实际任务是不相符的。在通过线程或者executor执行Runnable任务中,不仅仅是不能返回任务的执行结果,有时我们希望可以控制某个任务,或取消或终止,但在executor中一旦提交任务,我们将很难单一的控制任务的生命周期,虽然ExecutorService扩...
分类:
编程语言 时间:
2014-08-26 15:30:36
阅读次数:
283
一、线程的两种实现方式:继承Thread类和实现Runnable接口二、同步的两种实现方式:synchronized,wait和notify三、为何不推荐使用stop()和suspend()?四、sleep和wait区别五、同步和异步的区别六、当一个线程进入一个对象的一个synchronized方法...
分类:
编程语言 时间:
2014-08-26 13:37:46
阅读次数:
248
在实际应用中,有时候我们需要创建一些个延迟的、并具有周期性的任务,比如,我们希望当我们的程序启动后每隔1小时就去做一次日志记录。在JDK中提供了两种方法去创建延迟周期性任务。
Timer
Timer是java.util包下的一个类,在JDK1.3的时候被引入,Timer只是充当了一个执行者的角色,真正的任务逻辑是通过一个叫做TimerTask的抽象类完成的,TimerTask也是java.util包下面的类,它是一个实现了Runnable接口的抽象类,包含一个抽象方法run( )方法,需要我们自己去提供具体...
分类:
其他好文 时间:
2014-08-26 00:36:05
阅读次数:
323
本文是学习网络上的文章时的总结,感谢大家无私的分享。
1、如果创建一个类对象,实现Runnable接口,然后多个Thread对象使用同样的Runnable对象,全部的线程都共享同样的属性。这意味着,如果你在一个线程里改变一个属性,全部的线程都会受到这个改变的影响。如果希望程序里的哥哥线程的属性不会被共享,Java并发API提供了一个很清楚的机制叫本地线程变量。
2、Java并发API包括I...
分类:
编程语言 时间:
2014-08-23 12:44:20
阅读次数:
258
最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟们的见解后做了下总结。 1.JAVA多线程实现方式 JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、F...
分类:
编程语言 时间:
2014-08-21 19:46:05
阅读次数:
283
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一 个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。下面看例子:复制代码 代...
分类:
移动开发 时间:
2014-08-21 11:19:13
阅读次数:
330
在写程序时有些异步程序只执行一遍就不需要了,为了方便经常会写下面的代码
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
}).start();这样new出来的匿名对象会存在一些问题
1.由于是匿名的,无法对它进...
分类:
移动开发 时间:
2014-08-20 21:15:13
阅读次数:
393
1,看一下下面程序错误发生在哪一行!class Test implements Runnable{ public void run(Thread t){ }}2,输出结果是什么?class Test{ public static void main(String[] args){ new Th...
分类:
编程语言 时间:
2014-08-19 22:10:55
阅读次数:
292