什么是多线程?多线程的出现是要解决什么问题的? 本质什么?

Java语言是一种支持多线程技术的程序设计语言。利用多线程技术,可以开发出多个任务同时执行的应用程序,从而增强程序的功能,提高程序的交互性。

什么是多线程?

  • 在程序设计中,经常会遇到多个任务同时执行的情况,如一边进行图形化的操作,一边同步显示系统时间,又一边的播放音乐。在执行的过程中暂停一次或者多次,暂时放弃对计算机资源(如CPU中运算器、寄存器)的占用,以使得其他任务被执行,其他任务同样如此。整个过程需要快速、反复完成,已保证呈现出一种并发执行的效果。这种资源被交替占用的任务执行过程,被称为多线程处理。其中,每个任务的一次动态执行过程被称为进程,进程执行过程中的暂停被称为中断。进程通过中断被分解成若干段,每一段被称为一个线程。
  • Java语言的运行环境中(JVM)内置了一个线程调度器,用于确定某一个时刻由哪一个线程占用计算机资源执行,从而实现了多线程操作。当Java程序开始运行的时候。main()方法首先执行,此时线程调度器会开启一个线程,即主程序(Java Applet的主线程是Web浏览器),负责main()方法的执行,除主线程之外的线程被称为其他线程。程序从主线程开始执行,如果在主线程中创建了其他线程,线程调度器会将计算机资源在主线程的其他线程之间进行轮流切换,以保证每个线程都有机会执行。main()方法执行完毕后,主线程结束,但并不意味着其他线程执行结束,线程调度器会一直进行其他线程的调度,直到最后一个线程的结束。

多线程的出现是要解决什么问题的? 本质什么?

CPU、内存、I/O 设备的速度是有极大差异的,为了合理利用 CPU 的高性能,平衡这三者的速度差异,计算机体系结构、操作系统、编译程序都做出了贡献,主要体现为:

  • CPU 增加了缓存,以均衡与内存的速度差异;// 导致可见性问题
  • 操作系统增加了进程、线程,以分时复用 CPU,进而均衡 CPU 与 I/O 设备的速度差异;// 导致原子性问题
  • 编译程序优化指令执行次序,使得缓存能够得到更加合理地利用。// 导致有序性问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值