程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。

进程(process)是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期,如:运行中的QQ,运行中的MP3播放器

程序是静态的,进程是动态的。
进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域。

线程(thread),进程可进一步细化为线程,是一个程序内部的一条执行路径。若一个进程同一时间并行执行多个线程,就是支持多线程的线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc),线程切换的开销小。

一个进程中的多个线程共享相同的内存单元/内存地址空间,它们从同一堆中分配对象,可以访问相同的变量和对象。这就使得线程间通信更简便、高效。但多个线程操作共享的系统资源可能就会带来安全的隐患



一个Java应用程序java.exe,其实至少有三个线程:main()主线程,gc()垃圾回收线程,异常处理线程。当然如果发生异常,会影响主线程。


并行:多个CPU同时执行多个任务。如:多个人同时做不同的事。
并发:一个CPU(采用时间片)同时执行多个任务。如:秒杀、多个人做同一件事。


多线程程序的优点:
①提高应用程序的响应。对图形化界面更有意义,可增强用户体验
②提高计算机系统CPU的利用率
③改善程序结构。将既长又复杂的进程分为多个线程,独立运行,利于理解和修改


何时需要多线程

程序需要同时执行两个或多个任务。
程序需要实现一些需要等待的任务时,如用户输入、文件读写操作、网络操作、搜索。
需要一些后台运行的程序时。

Java多线程(1)--基本概念:程序、进程、线程相关推荐

  1. 02 线程简介 多任务 多线程 普通方法调用和多线程 程序.进程.线程 Proces与Thread 核心概念

    线程简介 任务,进程,线程,多线程 多任务 多任务处理是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务 多线程 原来是一条路,慢慢因为车太多了,道路堵塞,效率极低. 为了提高使用的 ...

  2. Java 多线程详解(五)------线程的声明周期

    Java 多线程详解(一)------概念的引入:https://blog.csdn.net/weixin_39816740/article/details/80089790 Java 多线程详解(二 ...

  3. java多线程基础学习[狂神说java-多线程笔记]

    java多线程基础学习 一.线程简介 1.类比 2.程序进程线程 3.线程的核心概念 二.线程的实现(重点) 调用方法与调用多线程的区别 Thread 类 1.thread使用方法 2. 代码实现 3 ...

  4. CPU核心数线程数、程序进程线程、并发并行的简单理解

    CPU核心数线程数.程序进程线程.并发并行.简单理解和区分 这篇文章是对上述感念的简单理解,想深入研究可以看看<计算机组成原理> CPU的核心数 线程数 当我们买电脑的时候,会看到CPU的 ...

  5. 详解Java多线程编程中LockSupport类的线程阻塞用法

    转载自  详解Java多线程编程中LockSupport类的线程阻塞用法 LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语.LockSupport实际 ...

  6. Java多线程001——一图读懂线程与进程

    本博客 猫叔的博客,转载请申明出处 前言 本系列将由浅入深,学习Java并发多线程. 一图读懂线程与进程 1.一个进程可以包含一个或多个线程.(其实你经常听到"多线程",没有听过& ...

  7. Java 多线程详解(三)------线程的同步

    Java 多线程详解(一)------概念的引入:https://blog.csdn.net/weixin_39816740/article/details/80089790 Java 多线程详解(二 ...

  8. Java多线程详解(如何创建线程)

    嗨喽-小伙伴们我们又见面了, 前面一章,我们了解了线程的基本概念,从这一章,我们开始学习如何创建一个线程.总的说来,在java中,有四种创建线程的方式: 1. 继承Thread类 2. 实现Runna ...

  9. Java多线程上——基本概念及操作

    目录 多线程定义: 多线程编程 创建线程方法 Thread 类及常见方法 启动问题(start() 与 run()) 区别 中断线程 等待一个线程-join() 线程的状态 线程安全 线程安全定义 线 ...

  10. java多线程为啥一直用的一个线程_一个Java多线程的问题,颠覆了我多年的认知!...

    作者 | ithuangqing 来源 | 编码之外(ID:ithuangqing) 碰见个奇怪的多线程问题 小白们也不用怕,今天的文章你们都能看得懂,最近的学习中,碰到这样的一个问题: Java创建 ...

最新文章

  1. html5中text-align,text-align
  2. Oracle分区表详解 .
  3. 前端程序员的一些有学习借鉴作用的网站
  4. IT人士运动方式选择建议
  5. 剑指 Offer 51. 数组中的逆序对(归并排序做法)
  6. 中国象棋将帅问题java_编程之美读书笔记1.2——中国象棋将帅问题
  7. 7款HTML5的精美应用教程让你立即爱上HTML5
  8. AAAI'22 Oral | 复旦x字节等提出:基于无监督编辑的反事实故事改写
  9. (转)如何在Windows下使用OpenGL 2.0的API(包括GLSL)
  10. everything is nothing
  11. mysql使用变量填值为数组_MySQL如何有效的存储IP地址?
  12. Thinkphp学习笔记——友情链接的添加和验证
  13. Selenium 截全屏
  14. 工控机运行linux,什么是linux嵌入式工控机
  15. windows批量部署
  16. 算法实现自动扫雷游戏
  17. CTFshow击剑杯osint——人家想玩嘛,人有点多超详细解法
  18. python地图匹配_基于隐马尔科夫模型(HMM)的地图匹配(Map-Matching)算法
  19. 微信小程序实现身份证识别功能
  20. wisp5.0 学习日记2

热门文章

  1. filter过滤后重新添加_Spring Boot 2.X(十):自定义注册 Servlet、Filter、Listener
  2. Unix/Linux/BSD 它们之间的关系以及各自派系的介绍
  3. Linux 命令之 df -- 显示磁盘空间使用情况
  4. 混合模式商城的可经销商品池
  5. markdown java 代码高亮_MarkdownPad2使用代码高亮插件
  6. java串口发送16进制数据_MFC串口通信发送16进制数据的方法
  7. 适合利用计算机模拟的是,计算机模拟在数学建模中的应用
  8. eclipse preference没有server_Java Web开发的前期准备工作,部署Tomcat服务器和Server环境创建...
  9. python数码时钟代码_Python+Pyqt实现简单GUI电子时钟
  10. 原生态基于OpenCV图像处理软件开发