"ThreadRunningTime.txt" 这篇资源主要探讨了Java中的同步和异步概念,并通过一个实际的多线程Demo展示了它们在执行时间上的差异。作者提供了两个线程类ThreadEx1和ThreadEx2,它们都访问同一个被同步方法修饰的SynchronizedMethod对象,以此来模拟并发执行的情况。 在计算机编程中,同步和异步是处理多线程和并发操作的关键概念。同步意味着多个线程按照一定的顺序执行,它们共享同一块资源,必须等待彼此完成任务才能继续。而异步则允许线程独立执行,无需等待其他线程,通常用于提高程序的响应速度和效率。 在这个示例中,我们看到两个线程ThreadEx1和ThreadEx2分别启动并尝试访问由`synchronized`关键字修饰的方法。`synchronized`关键字确保了在同一时刻只有一个线程可以执行该方法,实现了线程安全。当一个线程正在执行同步方法时,其他试图访问该方法的线程将被阻塞,直到该方法执行完毕。 在描述中提到,同步执行花费的时间比异步执行更长,因为线程需要等待资源的释放。例如,ThreadEx1执行完1000次循环(每个循环包含100毫秒的睡眠时间)后,ThreadEx2才能开始执行。这种现象导致了整体执行时间的增加,因为线程间存在依赖性。 为了进一步理解这个示例,我们可以分析ThreadEx1和ThreadEx2的代码。ThreadEx1和ThreadEx2都继承自Thread类,并且在各自的`run()`方法中,使用`synchronized`关键字锁定`syncMethod`对象,确保对共享资源的互斥访问。`Thread.sleep(100)`模拟了一个耗时的操作,使得线程在执行过程中暂停,从而延长了执行时间。 这个示例有助于开发者理解Java多线程中同步的机制和它对性能的影响。在实际应用中,合理地使用同步和异步能够优化程序性能,避免不必要的等待和资源争抢,提高系统效率。如果在理解和使用这些概念时遇到问题,可以通过提供的联系方式与作者交流。
----------- 同步块 执行12s
----------- 同步块 5s 被唤醒
但 数据为 100000时的 执行时间
记录 同步执行的时间 OK ==> 执行时间为:7923ms
异步执行的时间 OK ==> 执行时间为:7638ms
结论,但数据量为10万时, 同步执行和异步执行的方法 相差 接近 0.3秒
那么 可以看出 异步执行的速度和同步的速度 很接近 因为底层的 cup 本身就具有多线程去执行
重要的意义是为了,跳过但执行方法很长的方法,提高用户体验,
下面完成一个 异步调用方法.
-----------------------------------------------------------------------------------
package com.wallta.service.impl;
public class SynchronizedMethod {
// 异步执行方法 避免等待时间长 提高用户体验
public static void main(String[] args) {
SynchronizedMethod syncMethod = new SynchronizedMethod();
下载后可阅读完整内容,剩余3页未读,立即下载
- 粉丝: 19
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构