美文网首页多线程开发
1.多线程开发-基础概念

1.多线程开发-基础概念

作者: 还算年轻 | 来源:发表于2020-07-29 19:04 被阅读0次

线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的使用率更高

1.进程和线程的区别(并发与并行,串行与并行)

    进程至少包含一个线程,这个线程称为主线程、

    进程空间是不共享的,比如说QQ,线程空间是共享的,在java多线程模型中,共分为主内存和工作内存。

2.并行与并发:

    并发是看起来像同时执行,但是是由于CPU时间分片很短,通过时间片轮训本质还是顺序。

3.并发执行与顺序执行的快慢:

    并发执行本质通过CPU轮训,需要保存上次执行的情况,耗费资源与时间,那么为什么并发还要比串型快?因为阻塞,比如说IO操作,造成CPU资源的浪费,本质并发是通过压榨CPU 的方式提升速度。

4.JVM运行时区域和线程的关系:

    4.1. 程序计数器为什么是私有的?

        程序计数器主要有下面两个作用:

            字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。

            在多线程的情况下,程序计数器用于记录当前线程执行的位置,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。

    4.2. 虚拟机栈和本地方法栈为什么是私有的?

        虚拟机栈: 每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。

        本地方法栈: 和虚拟机栈所发挥的作用非常相似,区别是: 虚拟机栈为虚拟机执行 Java 方法 (也就是字节码)服务,而本地方法栈则为虚拟机使用到的 Native 方法服务。 在 HotSpot 虚拟机中和 Java 虚拟机栈合二为一。

5. 为什么要使用多线程呢?

      本质并发是通过压榨CPU 的方式提升速度。

6. 使用多线程可能带来什么问题?

      并发编程的目的就是为了能提高程序的执行效率提高程序运行速度,但是并发编程并不总是能提高程序运行速度的,而且并发编程可能会遇到很多问题,比如:内存泄漏、上下文切换、死锁还有受限于硬件和软件的资源闲置问题。

7.上线文切换概念:什么是上下文切换?

     当前任务在执行完 CPU 时间片切换到另一个任务之前会先保存自己的状态,以便下次再切换回这个任务时,可以再加载这个任务的状态。任务从保存到再加载的过程就是一次上下文切换。

8.JVM线程和系统线程的关联:

    Java线程的实现是基于一对一的线程模型,所谓的一对一模型,实际上就是通过语言级别层面程序去间接调用系统内核的线程模型,即我们在使用Java线程时,Java虚拟机内部是转而调用当前操作系统的内核线程来完成当前任务。

相关文章

  • 1.多线程开发-基础概念

    线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的使用率更高 1.进程和线程的区别(并发与并行,...

  • iOS开发系列-多线程之GCD扫盲篇

    1.概念相关 1.1 GCD(Grand Central Dispatch)是基于C语言开发的多线程开发技术(其它...

  • iOS 多线程详解

    iOS 多线程详解 Slogan : 可能是最通俗易懂的 iOS多线程 详细解析文章 1. 基础概念 1.1 进程...

  • 7 多线程机制

    1.基本多线程概念参考java基础文集 2.AnsyncTask异步任务 3.Handler消息传递机制 多线程相...

  • IOS开发_蓝牙开发思路

    目录: 1. 基础概念补充; 2. IPhone(APP)作为中心设备的开发流程; 1. 基础概念补充; 1.1 ...

  • 多线程(二)、内置锁synchronized

    前言 在上一篇 多线程(一)、基础概念及notify()和wait()的使用 文章中我们讲了多线程的一些基础概念...

  • 小程序云开发学习笔记--目录

    目录 基础课程 1.小程序 · 云开发 — 概念基础-->视频教程链接 2.小程序 · 云开发 — 操作基础-->...

  • 小笨狼漫谈多线程:NSThread

    多线程是程序开发中非常基础的一个概念,大家在开发过程中应该或多或少用过相关的东西。同时这恰恰又是一个比较棘手的概念...

  • 小笨狼漫谈多线程:GCD(一)

    多线程是程序开发中非常基础的一个概念,大家在开发过程中应该或多或少用过相关的东西。同时这恰恰又是一个比较棘手的概念...

  • java多线程相关

    (一) 基础篇 01.Java多线程系列--“基础篇”01之 基本概念 02.Java多线程系列--“基础篇”02...

网友评论

    本文标题:1.多线程开发-基础概念

    本文链接:https://www.haomeiwen.com/subject/tgjkrktx.html