摘要: 开启定时任务功能 创建定时任务的示例 如果想看到效果,直接启动项目即可。从结果可以看出,这些任务都是由同一条线程串行调度的。如果任务较少,还可以接受,但是如果任务很多,任务也很耗时,那就不适合了。这时可以使用@EnableAsync注解来开启对异步事件的支持,@Async来注解定时任务类或方法。这样 阅读全文
posted @ 2019-05-28 16:26 狱婪 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 创建定时任务线程池的方式 创建定时任务的方法 创建定时任务的示例 示例一:延迟执行 执行结果如下: 示例二:延迟执行,返回结果 执行结果如下: 示例三:延迟+周期性执行任务 执行结果如下: 示例四:初始延迟+周期性延迟执行任务 执行结果如下: 阅读全文
posted @ 2019-05-28 12:20 狱婪 阅读(312) 评论(0) 推荐(0) 编辑
摘要: Timer类的全限定名 java.util.Timer java.util.Timer类的构造函数 java.util.Timer类提供的创建定时任务的方法 创建定时任务的示例 示例一:延迟执行任务 执行结果如下: 示例二:在指定时间执行任务 执行结果如下: 示例三:延迟+周期性执行任务 执行结果如 阅读全文
posted @ 2019-05-28 01:31 狱婪 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 执行main方法,结果如下: 阅读全文
posted @ 2019-05-22 22:39 狱婪 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 运行结果如下: Monitor Ctrl-Break:这是IDEA特有的监控线程 Attach Listener:接收外部命令,返回处理结果 Signal Dispatcher:分发处理发送信号给JVM的线程 Finalizer:调用对象finalize方法的线程 Reference Handler 阅读全文
posted @ 2019-05-18 23:45 狱婪 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。 类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却远远不限于类加载阶段。对于 阅读全文
posted @ 2019-05-18 16:56 狱婪 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备 阅读全文
posted @ 2019-05-18 12:42 狱婪 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 对于初始化阶段,虚拟机规范严格规定了有且只有5种情况必须立即对类进行“初始化” 。这5种场景中的行为称为对一个类进行主动引用。除此之外,所有引用类的方式都不会触发初始化,称为被动引用。 1)遇到new、getstatic、putstatic 或invokestatic 这4 条字节码指令时,如果类没 阅读全文
posted @ 2019-05-18 12:33 狱婪 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。 语法糖的存在主要是方便开发人员使用。但其实 阅读全文
posted @ 2019-05-17 01:18 狱婪 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 从这个工具类的api来看,Java提供了五种线程池,分别是: FixedThreadPool WorkStealingPool SingleThreadExecutor CachedThreadPool ScheduledThreadPool FixedThreadPool 线程池的属性: 核心线程 阅读全文
posted @ 2019-05-16 23:46 狱婪 阅读(230) 评论(0) 推荐(0) 编辑