全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

java start()和run()的区别以及java中并发和并行的概念

发布时间:2022-08-11 11:59:57
发布人:qyf

java start()和run()的区别

  java start()和run()的区别

  1、概念区别

  start():产生线程对象后,调用start()方法启动线程,线程处于运行状态RUNNABLE中的Ready就绪状态中,此时线程等待被CPU调度,调度后再执行run()方法,使用start()方法启动线程,真正实现了多线程。

  run():run()方法是Thread中一个普通方法,直接用线程对象调用run()方法,会运行在主线程中。因为程序中只有一个主线程,当程序中有两个线程时,直接调用run()方法,程序按照顺序执行,没有实现多线程。

  2、实例

  public static void main(String[] args) {

  Thread t1 = new Thread(new Runnable() {

  @Override

  public void run() {

  System.out.println(Thread.currentThread().getName());

  }

  },"unstoppbale_t");

  t1.start();

  }

  java中并发和并行的概念

  由于任务数量远远超过CPU核心数量,因此操作系统会自动把任务调度到每个核心上执行。

  1、概念

  并发:多个进程在一个CPU下采用时间片轮转方式,在一段时间内,让多个进程得以推进,类似“雨露均沾”思想,一个CPU在短时间内会自动调度不同任务。

  并行:多个任务在多个CPU分别同时运行,这称之为并行。

  2、区分

  操作系统中将并发性与并行性做明显区分,主要从微观角度而言:

  并发性:单处理机情况下,多个进程在同一时间间隔运行

  并行性:多处理机情况下,多个进程同时运行

  举个例子理解并发与并行机制:

  客户去银行办理业务

  并发性:为了让银行服务人员更好地服务客户,规定每个客户的业务办理时间(防止其他客户长时间等待),银行服务人员将时间片轮转思想应用到客户业务中,当该客户业务的办理时间到达规定时间,银行人员暂停当前业务随之去办理下一个客户的业务,该客户等待下一次时间片的到来。从长时间来看,因为时间片较短,一个银行服务人员被认为可同时服务多个客户,这就可以理解为基于时间片的进程轮转管理机制,就是所谓的并发性。

  并行性:银行如果非常有钱,雇佣了很多的工作人员,此时一个客户就会有一个工作人员对接,所有客户的业务真正实现了同时处理,这种机制就称为并行性。

  以上就是java中并发和并行的概念介绍,希望对大家有所帮助。更多关于“java培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。

相关文章

做直播需要买哪些设备?具体包括哪些方面?

2023-09-19

我想直播带货去哪里找货源一件代发

2023-09-19

自己在家做直播需要什么设备大概好多钱

2023-09-19

直播怎么吸引人留住人?直播引流推广方法介绍

2023-09-19

今日头条推广如何获得更多的曝光?

2023-09-19

直播如何赚音浪?怎样增加直播收入?

2023-09-19
在线咨询 免费试学 教程领取