`

这段代码执行任务时启动了几个线程?

 
阅读更多
import java.util.Timer;
import java.util.TimerTask;

public class Show {

	public static void main(String[] args) {
		Timer timer = new Timer();
		timer.schedule(new AnyTimerTask("1"),1000);
		timer.schedule(new AnyTimerTask("2"),1000);
		timer.schedule(new AnyTimerTask("3"),1000);
		timer.schedule(new AnyTimerTask("4"),1000);
		timer.schedule(new AnyTimerTask("5"),1000);
		timer.schedule(new AnyTimerTask("6"),1000);

	}

}

class AnyTimerTask extends TimerTask {

	private String threadName;

	public AnyTimerTask(String threadName) {
		this.threadName = threadName;
	}

	public String getThreadName() {
		return threadName;
	}

	@Override
	public void run() {
		System.out.println(" Thread.currentThread().getName() "
		    + Thread.currentThread().getName() + " taskName " + threadName + "==="
		    + System.nanoTime());
	}
}

 

分享到:
评论
2 楼 ChinaEstone 2013-08-07  
再举一个例子:
RunnableImpl impl = new RunnableImpl();
impl.run()
这样会启动一个新线程吗?
interface ISomeInterface {
   void run()
}

class SomeImpl implements ISomeInterface {
    void run(){
       // todo something
    }
}

SomeImpl some = new SomeImpl();
some.run()
这个会启动一个新的线程吗?
两个例子一比较,一目了然,绝对不会。
1 楼 ChinaEstone 2013-08-07  
只有一个timer的线程,以前理解的时候任务runable接口实现,调用它的时候,都启动一个线程,现在看,其实不然。Runnable只是一个接口,实现这个接口的类型只有通过
Thread thread = new Thread(new RunnableImpl())包装启动后,才算是启动了一个新的线程。否则他就只是一个实现了接口的类。单纯实现了Runnable的类的和单纯实现一个普通接口的类一样,只有通过 Thread包装,实现后,才会创建一个新的线程。

相关推荐

    java线程池概念.txt

    corePoolSize:核心池的大小,在创建了线程池后,线程池中的线程数为0,当有任务来之后,就会创建一个线程去执行任务,当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中; ...

    ARM_Linux启动分析.pdf

    init()函数到此结束,内核的引导部分也到此结束了,这个由start_kernel()创建的第一个线程已经成为一个用户模式下的进程了。此时系统中存在着六个运行实体: start_kernel()本身所在的执行体,这其实是一个"手工...

    net学习笔记及其他代码应用

    答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。 40.接口是否可...

    java 面试题 总结

    最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概...

    JAVA上百实例源码以及开源项目源代码

     这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...

    超级有影响力霸气的Java面试题大全文档

    最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概...

    c#学习笔记.txt

    如前所述,我是一个狮子座男人,一度我认为学习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择,我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#,请不要问我为何做出这样的选择,很多人认为...

    vc++ 开发实例源码包

    如题,主要源码就几个,详细见代码。 MzfHips主动防御 主要在MzfHipsDlg中,程序分析进程数据、驱动数据、注册表数据从而实现主动防御。 超级下载 不过不是c++源码 1:综合FTP下载和HTTP(网络蚂蚁)(多线程). 2:FTP...

    精易模块[源码] V5.15

    6、修正“文本_取中间_批量”当参数限定长度不要时,不能继续向下执行的BUG,感谢易友【半个灵魂づ留着】代码。 7、删除“文本_取中间_批量1”命令。 8、修复“注册表操作Ex->写入键值Ex”创建项,重启丢失的BUG,...

    JAVA上百实例源码以及开源项目

     这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...

    java面试800题

    2.RequiredNew:当处于事务范围内的客户端应用调用组件商务方法时,EJB容器启动一个新的事务过程,组件商务方法执行在新事务过程范围内; 3.Mandatory:如果调用EJB组件商务方法的客户端应用不处于事务范围内,则...

    windows 程序设计

    Microsoft Windows版本3.1是1992年4月发布的,其中包括的几个重要特性是TrueType字体技术(给Windows带来可缩放的轮廓字体)、多媒体(声音和音乐)、对象连结和嵌入(OLE:Object Linking and Embedding)和通用...

    C#微软培训资料

    <<page 1>> page begin==================== 目 目目 目 录 录录 ... 2.2 公用语言运行时环境与公用语言规范.13 ...第三章 编写第一个应用程序 .20 ... 18.2 在 C #代码中调用 C++...这一天 微软公司正式推出了其下一代...

    fourinone-3.04.25

    Fourinone有“包工头”,“农民工”,“手工仓库”的几个核心概念。“农民工”为一个计算节点,可以部署在多个机器,它由开发者自由实现,计算时,“农民工”到“手工仓库”获取输入资源,再将计算结果放回“手工...

    内存管理内存管理内存管理

    的一个最简化实现的代码,来帮助说明管理内存时都涉及到了哪些事情。 要试着运行这些示例,需要先复制本代码清单,并将其粘贴到一个名为 malloc.c 的文件中。接下来,我将一次一个部分地对该清单进行解释。 在...

    操作系统(内存管理)

    然后,当通过 free() 将该指针传递回来时,我们只需要倒退几个内存字节就可以再次找到这个结构。 在讨论分配内存之前,我们将先讨论释放,因为它更简单。为了释放内存,我们必须要做的惟一一件事情就是,获得我们...

    C++网络爬虫项目

    如初始化、执行多路输入输出循环、启动抓取任务等外部接口。 2.3.5. 主线程(main) 主函数,处理命令行参数,初始化应用程序对象,进入多路I/O循环。 2.4. 外围扩展 2.4.1. 最大深度插件(MaxDepth) 根据配置文件的MAX...

    IIS6.0 IIS,互联网信息服务

    经过验证,WWW、FTP等几个服务经过这样的修改都可以在Windows XP家庭版上正常运行。不过经过这样处理安装的IIS在运行上可能存在某种未知的缺陷。 四、在Vista系统中安装IIS7.0相对于早先的版本,IIS 7.0 带来了许多...

Global site tag (gtag.js) - Google Analytics