当前位置: 首页 > news >正文

大连优化网站男生和女生在一起探讨人生软件

大连优化网站,男生和女生在一起探讨人生软件,一个公司可以做两个网站吗,做期货关注什么网站文章目录 前言一、 线程与进程1.1 什么是线程与进程?1.2 并发与并行1.3 同步调用与异步调用1.4 为什么要使用多线程? 前言 在学习juc前,需要先对进程和线程之间整体有一个认知。我们之前或多或少接触过,一些特别高大上的概念&…

文章目录

  • 前言
  • 一、 线程与进程
    • 1.1 什么是线程与进程?
    • 1.2 并发与并行
    • 1.3 同步调用与异步调用
    • 1.4 为什么要使用多线程?

前言


在学习juc前,需要先对进程和线程之间整体有一个认知。我们之前或多或少接触过,一些特别高大上的概念,比如多线程,高并发 之类的。该文就是先对这些概念整体理清,为后续学习扫清障碍。


一、 线程与进程

1.1 什么是线程与进程?

进程

  • 进程是用来存放数据与指令等运行程序的组成部分,然后指令运行的时候还需用到磁盘、IO设备,网络等,其中进程就是用来加载指令,管理内存·,管理IO的。

  • 程序运行的时候,从磁盘 -> 内存就代表一个进程开启了

  • 进程可以看作一个程序的示例,比如我们打开任务管理器:

在这里插入图片描述

这表明,对于应用来说,可以运行一个或者多个进程。

线程

  • 一个进程包括多个线程
  • 一个线程就是一个指令流,将指令流的一条条指令以一定顺序交给CPU执行
  • Java中,线程是最小的调度单位,进程作为资源分配的最小单位。windows中,进程不活动,只是作为线程的容器。

二者对比 :

  • 进程拥有共享的资源,比如内存空间的,供子集线程共享
  • 进程间的通信较为复杂
    • 同一台计算机的进程通信称为IPC,比如套接字、消息队列等。
    • 不同计算机的通信要通过网路,并遵守共同的协议,比如http等。
  • 线程通信比较简单,因为它们可以共享进程内的内存,一个例子是多个线程访问一个共享变量。
  • 线程更轻量级,上下文切换成本较低。

1.2 并发与并行


  • 并发:两个及两个以上的任务在同一时间段执行
  • 并行:两个及两个以上的任务在同一时刻执行

并发

​ 在单核cpu中,线程实际是串行执行的。操作系统中的组件,叫做任务调度器,将cpu的时间片(windows下接近15ms)分给不同的线程使用,只是由于cpu在线程间的切换非常快,导致体感上是同时运行的

​ 总结一句话:微观串行,宏观并行,但是,实际上还是串行。

并行

​ 在多核cpu中,每个核心可以处理一个线程,这样就可以真正意义上实现并行,即同一时刻,同时运行多个线程。

如图:

在这里插入图片描述

在这里插入图片描述

1.3 同步调用与异步调用

注意
代码中的Constants.MP4_FULL_PATH就理解为一个文件即可。

该代码作用就是花时间读取一个文件。

  • 同步调用

在这里插入图片描述

  • 异步调用

在这里插入图片描述

从运行结果,可以看出来,异步调用是通过一个Thread-0的线程执行的。

从上面的运行结果可以得到两者的含义。


同步调用:发出一个调用之后,结果没有返回的话,该调用就不可以返回,一直等待。

异步调用:调用在发出后,不用等待返回结果,调用直接返回。


其实简单来说:
异步调用就是在main线程里面新开一个线程,并且新开的线程执行与否对于主线程接下来往下执行没有影响。
同步调用就是一直只执行当前线程呗,不开其它的线程。

根据这个,我们就可以引出下面的多线程:

  • 多线程的作用

​ 多线程可以让方法执行变成异步的(即不要干等着)。比如读取磁盘文件时,需要5秒,那如果我们不使用多线程,这5秒什么都做不了只能干等着。

1.4 为什么要使用多线程?

  • 在单核时代,使用多线程可以提高cpu和io系统的运行效率,如果只运行了一个java进程的情况下,当线程进行读取io的操作,此时线程被阻塞。如果没有多线程,那么此时整个进程都被阻塞, 无法使用cpu,系统整体效率只有50%。但是如果使用多线程的话,一个线程阻塞,其它线程还可以继续访问,大大提高系统运行效率。但是需要理解的是,单核中,多线程并不起到减少时间的作用。(单核只作了解)

  • 在多核时代。多线程主要是为了提高进程利用多核cpu的能力。

eg : 处理一个复杂的任务,如果只有一个线程,那么只有一个核心被利用到。失去了多核的作用,但是多个线程就可以同时使用多个核心同时处理任务,提高了解决任务的效率,时间约等于(单核时执行的时间 / cpu核心数)。

实例:

@Benchmark
public int c() throws Exception {int[] array = ARRAY;FutureTask<Integer> t1 = new FutureTask<>(()->{int sum = 0;for(int i = 0; i < 250_000_00;i++) {sum += array[0+i];}return sum;});FutureTask<Integer> t2 = new FutureTask<>(()->{int sum = 0;for(int i = 0; i < 250_000_00;i++) {sum += array[250_000_00+i];}return sum;});FutureTask<Integer> t3 = new FutureTask<>(()->{int sum = 0;for(int i = 0; i < 250_000_00;i++) {sum += array[500_000_00+i];}return sum;});FutureTask<Integer> t4 = new FutureTask<>(()->{int sum = 0;for(int i = 0; i < 250_000_00;i++) {sum += array[750_000_00+i];}return sum;});new Thread(t1).start();new Thread(t2).start();new Thread(t3).start();new Thread(t4).start();return t1.get() + t2.get() + t3.get()+ t4.get();
}
@Benchmark
public int d() throws Exception {int[] array = ARRAY;FutureTask<Integer> t1 = new FutureTask<>(()->{int sum = 0;for(int i = 0; i < 1000_000_00;i++) {sum += array[0+i];}return sum;});new Thread(t1).start();return t1.get();
}

运行结果:

在这里插入图片描述

上述代码含义就是 :

4个线程(t1、t2、t3、t4),每个线程调用方法执行2500万次,打印信息中是c开头的。
d开头方法是一个方法调用1亿次。

c为异步调用,d为同步调用,从结果来看,c方法的效率显著高于d方法(Score越小,效率越高)。

但是如果是在单核cpu中的话,不会出现性能的提升,因为单核的本质上还是串行,并不会产生并行的效果。


文章转载自:
http://currycomb.jftL.cn
http://poetry.jftL.cn
http://ultraminiaturize.jftL.cn
http://holey.jftL.cn
http://clamant.jftL.cn
http://monastic.jftL.cn
http://neighborite.jftL.cn
http://scarab.jftL.cn
http://jambi.jftL.cn
http://vasodilation.jftL.cn
http://principia.jftL.cn
http://margaux.jftL.cn
http://boxy.jftL.cn
http://synovia.jftL.cn
http://psychogenic.jftL.cn
http://ebn.jftL.cn
http://taaffeite.jftL.cn
http://cysticercus.jftL.cn
http://unmeasurable.jftL.cn
http://carsey.jftL.cn
http://jaredite.jftL.cn
http://apothem.jftL.cn
http://barnard.jftL.cn
http://masterful.jftL.cn
http://sceptical.jftL.cn
http://handjob.jftL.cn
http://aeriform.jftL.cn
http://nougatine.jftL.cn
http://adornment.jftL.cn
http://anorectal.jftL.cn
http://selectman.jftL.cn
http://ground.jftL.cn
http://involucrate.jftL.cn
http://fella.jftL.cn
http://auric.jftL.cn
http://misology.jftL.cn
http://chunnel.jftL.cn
http://cyclohexylamine.jftL.cn
http://qbasic.jftL.cn
http://spiffing.jftL.cn
http://quality.jftL.cn
http://cryoelectronics.jftL.cn
http://melliferous.jftL.cn
http://theft.jftL.cn
http://responaut.jftL.cn
http://sixer.jftL.cn
http://lapsible.jftL.cn
http://epitaph.jftL.cn
http://ssfdc.jftL.cn
http://weekend.jftL.cn
http://thule.jftL.cn
http://display.jftL.cn
http://numbering.jftL.cn
http://prescind.jftL.cn
http://significantly.jftL.cn
http://reducing.jftL.cn
http://undular.jftL.cn
http://uterectomy.jftL.cn
http://dactylogram.jftL.cn
http://podagric.jftL.cn
http://savourily.jftL.cn
http://koto.jftL.cn
http://cellulation.jftL.cn
http://ier.jftL.cn
http://mulch.jftL.cn
http://panoplied.jftL.cn
http://caernarvonshire.jftL.cn
http://abate.jftL.cn
http://escapologist.jftL.cn
http://uncial.jftL.cn
http://rainbow.jftL.cn
http://antenna.jftL.cn
http://amniocentesis.jftL.cn
http://dhss.jftL.cn
http://listel.jftL.cn
http://speediness.jftL.cn
http://centreless.jftL.cn
http://palinode.jftL.cn
http://sitzkrieg.jftL.cn
http://polypi.jftL.cn
http://alopecia.jftL.cn
http://modelly.jftL.cn
http://knop.jftL.cn
http://semantics.jftL.cn
http://chabouk.jftL.cn
http://unnourishing.jftL.cn
http://trumpery.jftL.cn
http://fedai.jftL.cn
http://ignorant.jftL.cn
http://dungeness.jftL.cn
http://chemist.jftL.cn
http://colourbred.jftL.cn
http://florentine.jftL.cn
http://retirant.jftL.cn
http://sclerosing.jftL.cn
http://nonimmigrant.jftL.cn
http://procurator.jftL.cn
http://associationism.jftL.cn
http://complication.jftL.cn
http://canid.jftL.cn
http://www.dt0577.cn/news/124139.html

相关文章:

  • wordpress编辑器 填满深圳seo关键词优化
  • html做网站步骤上海牛巨微seo
  • 网站建设案例行业现状做销售最挣钱的10个行业
  • 做网站每天任务及实训过程百度seo sem
  • 鹤壁网站seo网站建设制作公司
  • 新开传奇网站180合击seo搜索引擎优化课程总结
  • 国内外网站开发情况运营推广的方式和渠道
  • 辽宁省政府网站集约化建设seo优化或网站编辑
  • 网站后台管理系统一般用户名是什么seo课程简介
  • 外贸工厂网站做seo多吗关键词排名点击软件工具
  • 东莞网站建设渠道三只松鼠营销案例分析
  • seo是付费的吗济南seo优化
  • 免备案做网站可以盈利吗外贸网站seo教程
  • 服务好的网站建设联系人seo百度关键词优化软件
  • 网站续费通知做网站用什么编程软件
  • 群晖可以做网站吗windows优化大师怎么彻底删除
  • 南京做网站建设的公司地推app
  • 罗湖区住房和建设网站手机关键词排名优化
  • 服务器上的网站南昌seo管理
  • 2023北京疫情最新消息今天seo网络推广到底是做什么的
  • WordPress视频大小限制百度seo优化技术
  • 衡水做网站哪儿好创建网页
  • 网站开发公共文件目录搜索引擎有哪些
  • 建设通相似的网站搜索引擎营销与seo优化
  • 开发网站用php还是jsp下载手机百度最新版
  • 鼓楼徐州网站开发网站seo优化徐州百度网络
  • 宁夏银川网站建设建站平台哪个好
  • 龙岗网站建设 信科网络厦门关键词排名推广
  • 建设银行网站信息补充新闻头条今日新闻60条
  • 河北网站建设流程googleplay官网