首页 > 编程语言 >Java多线程学习(Day01)

Java多线程学习(Day01)

时间:2023-09-16 21:33:26浏览次数:61  
标签:Java Day01 并行 小张 串行 线程 进程 多线程

目录

  • 线程简介

  • 线程实现(重点)

  • 线程状态

  • 线程同步(重点)

  • 线程通信问题

进程与线程概念

                                                                          --来自百度百科的解释:        

  进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。    

  线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。

  看起来有点枯燥,下面我们在Windows系统中寻找进程和线程:

  在Windows中的一些进程

  

  上图中可以发现网易有道词典中有几个进程同时存在,并且拥有属于自己的进程名字和一个唯一属于自己的PID编号。

  在Windows中的线程:

  上图中根据唯一的PID可以发现每个进程拥有的线程数。

 进程与线程的区别

   关于线程与进程之间的关系优秀的文章有很多篇。如果想看详细信息  ->线程与进程,你真得理解了吗_进程和线程的区别_云深i不知处的博客-CSDN博客

  • 本质区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。

  • 包含关系:一个进程至少有一个线程,线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

  • 资源开销:每个进程都有独立的地址空间,进程之间的切换会有较大的开销;线程可以看做轻量级的进程,同一个进程内的线程共享进程的地址空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换的开销小。

  • 影响关系:一个进程崩溃后,在保护模式下其他进程不会被影响,但是一个线程崩溃可能导致整个进程被操作系统杀掉,所以多进程要比多线程健壮。

以上区别内容摘抄自网络。

并行,串行,并发的概念

    同样的在这边推荐一篇优秀文章->并发,并行与串行的区别_串行和并行的区别_CrazySnail_x的博客-CSDN博客

  • 并行在生活中便有许多并行例子,例如小张在一边开车一边打电话,小李一边跑步一边聊天。这类在同一时间同时做两件或两件以上的事件的行为就可以称之为并行。
  • 串行:同样的以生活为例。例如过几个月你面临考研,当下你复习毫无章序于是你便写了一个复习计划书,在一个时间段只做一件事将一天安排的满满当当。当你度过这一天在每一个时间段只做一件事的行为便可以称之为串行。
  • 并发同样以生活为例。男生小张约了女生小李在早上10点见面,但是女生小王也约了小张在早上10点见面。小张不想拒绝小李和小王,于是他决定哪一个都不爽约。早上10点小张先跟小李在奶茶店A见了面并跟小王发了个微信说路上堵车大概要十点二十才到,十点二十小张跟小李说要去打个电话处理事情,于是出门去了奶茶店B见了小王。过了一会小张以同样的借口出门去奶茶店A见了小李。就这样在无数的借口中,小张成功在一段时间交替完成了与两个女孩的约会。

标签:Java,Day01,并行,小张,串行,线程,进程,多线程
From: https://www.cnblogs.com/CooperCode/p/17707326.html

相关文章

  • Java基础-环境搭建
    目录JDK介绍JDK下载JDK安装JDK环境配置JRE环境配置内容JDK介绍JDK(Java开发工具包)提供了构建所有面向Java平台的应用程序的基础。JDK包括执行各种任务的各种工具和实用程序,包括将源代码编译成字节码、打包应用程序、启动Java虚拟机(JVM)和管理Java应用程序的运......
  • 无涯教程-JavaScript - ATANH函数
    描述ATANH函数返回数字的反双曲正切值。反双曲正切值是其双曲正切值为number的值,因此ATANH(TANH(number))等于number。语法ATANH(number)争论Argument描述Required/OptionalNumberAnyrealnumberbetween(butnotequalto)1and-1.RequiredNotes如果指定的......
  • java递归算法
    当解决问题时,递归是一种常用而强大的算法技术。在Java中,递归是指方法调用自身的过程。它可以用于解决许多问题,特别是与算法和数据结构有关的问题。在本博客中,我们将详细介绍Java中的递归算法,并提供一些具体的代码示例。什么是递归?递归的基本概念和特点递归是指方法在其定义中......
  • 23.9.16(Java版登录界面)
    //Anadditionprogramimportjavax.swing.JOptionPane;//importclassJOptionPaneimportjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.image.BufferedImage;importjava.util.Random;pub......
  • JavaScript 中的 `this` 指向问题与其在加密中的应用
    JS中的this关键字是一个非常重要的概念,它在不同情况下会指向不同的对象或值。在本文中,我们将深入探讨JavaScript中this的各种情况,并思考如何将其应用于JS加密中的一些有趣用途。1.全局上下文中的this在全局上下文中,this指向全局对象,通常是浏览器环境中的window对象。这......
  • 无涯教程-JavaScript - ASIN函数
    描述ASIN函数返回给定数字的反正弦或反正弦,并返回以弧度表示的Angular,介于-π/2和π/2之间。语法ASIN(number)争论Argument描述Required/OptionalNumberThesineoftheangleyouwantandmustbefrom-1to1.RequiredNotes如果您希望ASIN函数返回的Angula......
  • HBase学习6(大量数据的导入及操作java)
    在HBase中,有一个Import的MapReduce作业,可以专门用来将数据文件导入到HBase中。hbaseorg.apache.hadoop.hbase.mapreduce.Import表名HDFS数据文件路径1.导入数据1.将资料中数据文件上传到Linux中2.再将文件上传到hdfs中hadoopfs-mkdir-p/water_bill/output_ept_......
  • Java基础知识学习笔记总结
    Java学习笔记总结java基础复习1、抽象类可以有构造器,可以有一个非抽象的父类2、垃圾回收机制回收的是堆里面的内存,栈里面的数据自动入栈自动出栈3、引用类型的数据在堆当中,内存中操作的只有栈,new关键字在堆里面分配一块内存4、java中是值传递5、String是不可变字符,即一旦分配......
  • Javaweb、javaEE学习笔记基础知识
    Html1、属性 align:对齐方式 bgcolor:背景颜色target:_blank在新窗口打开_self默认,在相同的框架打开_parent在父框架集中打开_top在整个窗口打开framename在指定的窗口打开2、注释 <!--注释-->3、文件路径 同一目录下:文件名 上级目录:../ 下级目录:从目......
  • java == 和 equals 和 128以下整数
    Integera=127;Integerb=127;System.out.println(a==b);打印值为true而Integera=128;Integerb=128;System.out.println(a==b);打印值为false 因为:在Java中,不应该以这种方式比较对象。当您像a==b那样比较它们时,您比较的是引用,而不是值,值......