摘要: 首先回顾下之前的匿名内部类: 匿名内部类的格式: new 接口或者接口名(){ 重写方法 }; 本质:是该类或者接口的子类对象 匿名内部类方式使用多线程 1、new Thread(){代码…}.start(); 2、new Thread(new Runnable(){代码…}).start(); 例 阅读全文
posted @ 2016-10-11 21:42 卡拉瓦 阅读(1231) 评论(0) 推荐(0) 编辑
摘要: JDK5新增了一个Executors工厂类来产生线程池,有如下几个方法 A、public static ExecutorService newCachedThreadPool() B、public static ExecutorService newFixedThreadPool(int nThre 阅读全文
posted @ 2016-10-11 21:08 卡拉瓦 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互。 而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池。 线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。 在JDK5之前,我们必须手动 阅读全文
posted @ 2016-10-11 21:00 卡拉瓦 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 在之前,是把生产者录入数据和消费者获取数据的所有代码都分别写在各自的类中。 这样不大好 这次把生产者和消费者部分关键代码都写入资源类中: 然后再改变生产类和消费类的代码: 生产类: 消费类: 测试类不变: 阅读全文
posted @ 2016-10-11 17:46 卡拉瓦 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 线程的状态转换图解:图片 线程的线程组: 线程组: 把多个线程组合到一起。 它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。 首先创建一个Runnable的实现类 先看看默认状态下,线程都会保存在哪个线程组中 由上面可知道,线程默认情况下属于main线程组 我们再让线程添加到自定 阅读全文
posted @ 2016-10-11 17:39 卡拉瓦 阅读(229) 评论(0) 推荐(0) 编辑