JAVA语言中的多线程(一)
小标 2018-07-19 来源 : 阅读 1059 评论 0

摘要:本文主要向大家介绍了JAVA语言中的多线程,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言中的多线程,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

   进程:正在执行中的程序,其实是应用程序在内存中运行的那片空间。

        线程:进程中的一个执行单元,负责进程中的程序的运行,一个进程至少要有一个线程。

                  一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。

       程序启动了多线程,有什么应用呢?

答:可以实现多部分程序同时执行,称之为并发;备注:在某一时刻只会有一个进程在进行,由于CPU切换的频率比较快到时我们平成感觉是同时进行的。

      多线程的使用可以合理使用cpu的资源,如果线程过多会导致性能降低。

      CPU处理程序时是通过快速切换完成的,在我们看来好像是随意一样,但是CPU有着自己的计算方法。

下面通过代码来进行演示:

      在如下的代码中,jvm启动后,必然有一个执行路径(线程)从main方法开始的,一直执行到main方法结束。这个线程在java中称之为主线程。

      当主线程在这个线程中执行时,如果遇到循环导致在指定位置停留时间过长,无法执行下面的程序。解决这个问题我们实现主线程解决一个循环,由另一个线程负责其他代码的执行。实现多部分代码同时执行,这就是多线程技术可以解决的问题。

 

   如何在java中创建线程呢?

  看文档java api中的thread类中的描述,创建线程有两种方式:

  1.继承Thread类

    1.1定义一个类继承Thread

    1.2重写run()方法

    1.3创建一个子类对象,就是创建线程对象

    1.4调用start方法,开启线程并让线程执行,同时还会告诉jvm去调用run方法。

      为什么不直接调用run()方法?

      答:如果直接调用run方法,在java中以栈的形式来存放,它将会先把mian()方法放入栈中,然后在放一个run()方法,接下来在上面的列子中首先是d1调用,执行完了之后,d2调用,这样变成了顺序执行,结果还是存在循环问题。是的主线程还是负责两个线程。如图:

 

更改如下图:

 

这样的结果还是没有什么变化,这是因为主线程创建完对象之后,开始执行d1.run()方法,在这还是没有对d2.run()方法进行开启,所以结果还是没有什么变化。所以要在d1.run()方法调用前应该调用d2.start()方法,对d2的线程先开启这样就可以了。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程