线程知识巩固第一节

别再为PT100测温发愁了!手把手教你用ADS1247+STM32搞定高精度温度采集(附完整源码) 本文详细介绍了如何利用ADS1247高精度ADC与STM32微控制器构建PT100测温系统,实现±0.1℃的温度测量精度。内容涵盖硬件设计、寄存器配置、SPI通信优化及温度换算算法,特别适合工业自动化和精密仪器领域的嵌入式开发人员参考。 阅读详情
  1. 什么是线程?
    线程:操作系统能够进行运算调度的最小单位。
    它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
  2. 线程的开启方式有几种?怎么实现?
    开启线程的方式有三种:
    1. 继承Thread类(重写run方法)

               public class Main {
           
               public static void main(String[] args) {
           
                   System.out.println("Hello World!");
                   new MyThread("张三的线程 ").start();
               }
           
           
               // 第一种
               public static class MyThread extends Thread {
           
                   public MyThread(String name) {
                       super(name);
                   }
           
                   @Override
                   public void run() {
                       for (int i = 0; i < 25; i++) {
                           System.out.println(Thread.currentThread().getName() + ":正在工作 " + i);
                       }
                   }
               }
           }
      

      在这里插入图片描述

    2. 实现Runnable接口(重写run方法)
      实现Runnable接口的好处:
      1.Runnable接口避免了单继承的局限性。
      2.Runnable接口对线程对象和线程任务进行解耦
      线程组成部分分为两种:线程对象和线程任务。
      继承Thread类,线程对象和线程任务耦合,一旦创建Thread类的子类对象,既是线程对象,又有线程任务。
      实现Runnable接口,将线程任务单独封装成对象,类型就是Runnable接口类型。

        public static void main(String[] args) {
       
           System.out.println("Hello World!");
           MyRunnable myRunnable = new MyRunnable();
           Thread thread = new Thread(myRunnable);
           thread.start(); }
       
       
       // 第二种 
       public static class MyRunnable implements Runnable {
       
           @Override
           public void run() {
               for (int i = 0; i < 25; i++) {
                   System.out.println(Thread.currentThread().getName() + ":正在工作 " + i);
               }
           } 
        }
      

      在这里插入图片描述

    3. 线程池(实现callable接口,重写call()方法)
      线程池的优势:
      1.多线程的情况下尽量使用线程池。
      2.线程的创建和销毁是开销比较大的。

         public static void main(String[] args) {
      
               System.out.println("Hello World!");
               //开启线程池,初始化线程池的个数
               ExecutorService executorService = Executors.newFixedThreadPool(5);
               //  创建接口实现类
               MyCallAble mCallAble = new MyCallAble();
               //从线程池中获取线程对象,然后调用MyRunnable中的run()
               //注意:submit方法调用结束后,程序并不终止,是因为线程池控制了线程的关闭。将使用完的线程又归还到了线程池中
               //Future接口:用来记录线程任务执行完毕后产生的结果。
               Future<String> f = executorService.submit(mCallAble);
               try {
                   //获得线程池里面的内容
                   System.out.println(f.get());
               } catch (InterruptedException e) {
       
                   e.printStackTrace();
               } catch (ExecutionException e) {
       
                   e.printStackTrace();
               }
       
           }
       
       
           // 第三种
           public static class MyCallAble implements Callable<String> {
       
               @Override
               public String call() throws Exception {
                   return "我是线程池";
               }
           }
          
      
超声波传感器(CHx01) 学习笔记 Ⅲ - I2C读写操作 CH-x01 通过 2 线 I2C 协议与主机处理器通信 阅读详情

相关推荐

SAP生产订单成本‘还原’实战:从标准成本到实际费用,一步步拆解差异来源(附物料分类账提示)

本文深入解析SAP生产订单成本差异分析的全过程,从标准成本到实际费用的追踪方法,揭示差异根源的六维分析法。特别强调物料分类账(CKMLCP)在成本还原中的关键作用,帮助财务人员精准定位价格差异、用量差异等问题,提升制造业成本管理的效率和准确性。

weixin_28705087的博客 534

多线程 第一节 基础知识

基础 1、进程: 执行中的程序 进程是线程的容器 是程序的实体 资源分配和调度的基本单位 2、 线程: 是来执行程序的 同一进程中的线程共用相同的地址空间 表示程序的执行流程 能够执行程序代码的一个执行单位 3、 一个进程至少要包含一个线程 同一进程下的线程共享全局变量、静态变量等数据 4、 线程的状态 新建- ...

ellen艾琳的博客 205

Enterprise Architect 中文经典教程

本文使用到的EA工程文件下载 一、Enterprise Architect简介 Enterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。在需求分析阶段,系统分析与设计阶段,系统开发及部署等方面有着强大的支持,...

2万+

多线程与高并发第一节,课堂知识小结21.08.01

多线程与高并发认识并发与并行入门程序分析(打印---HelloWorld)线程之间是如何抢占CPU资源的?自定义线程的执行 认识并发与并行 并发是针对一个CPU来讲,“同一时间”执行多个任务–实质上是划分时间片,由于时间很短给人的感觉是是同时执行的; 并行是针对多个CPU来讲的,同时执行多个任务(一个CPU执行一个),这是真正意义上的同时执行; 入门程序分析(打印—HelloWorld) class Car{ public void drive(){ System.out.prin

Gavin 217

YOLO26原创自研: 魔改Bottleneck,具备多尺度和特征通道融合的结构

魔改Bottleneck,具备多尺度和特征通道融合的结构,该模型在检测准确性方面都取得了良好的效果,尤其在缺陷检测方向。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 318

【Unity优化篇】| Unity3D场景 常用优化策略,遮挡剔除、层消隐距离技术 和 LOD多层次细节

本篇文章来简单介绍一下 Unity中几种常用3D场景优化策略 方法 对于整个项目来说,本文中出现的方法也只是冰山一角,慢慢积累学习吧! 内容包括遮挡剔除(Occlusion Culling)、层消隐距离技术 和 LOD多层次细节

努力前行,总会成为自己心中的那道光 1万+

C++线程与网络接口技术(第一节:线程及其创建,调度与回收知识)

1.线程 2.线程的调度,sleep的使用 3.线程的创建与启动 4.线程的停止与回收

a18852867035的博客 415

华为OD机试双机位C卷:采购订单 (Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 采购订单,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,并提供在线OJ模拟做题。华为OD机试真题【采购订单】

qq_45776114的博客 3534

c++ OMP 入门(HPC高性能计算第一节)

OMP是一套跨平台共享内存多线程并发编程API,目的是提高计算速度。

2303_77085211的博客 698

【STM32 CubeMX】I2C中断方式与DMA方式

在STM32 CubeMX环境中,I2C(Inter-Integrated Circuit)通信协议的实现可以采用中断方式或DMA(Direct Memory Access)方式。中断方式通过触发中断来处理数据传输,而DMA方式则利用直接内存访问技术来实现数据传输,减轻了CPU的负担。在选择I2C通信方式时,开发者需要根据具体的应用需求和性能要求来选择合适的方式。STM32 CubeMX提供了图形化配置工具,使得配置I2C通信方式变得更加便捷。

m0_62599305的博客 7749

多物理场光学仿真软件:Lumerical_(15).多物理场耦合仿真案例分析

在多物理场光学仿真中,Lumerical 软件提供了强大的工具来模拟复杂的光学系统,包括光子学、热学、力学和电学等多物理场的耦合。本节将通过具体的案例分析,展示如何在 Lumerical 中进行多物理场耦合仿真的开发和实现。我们将从简单的热光效应仿真入手,逐步深入到更复杂的多物理场耦合场景,如光电效应和光力学效应。每个案例都将包括详细的原理说明和具体的代码示例,帮助读者更好地理解和应用这些技术。

kkchenjj的博客 1023

线程最最基础的知识

Java 多线程系列文章第 5 篇。

小烁笔记 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java线程知识点总结

Thread、Runnable、Callable、Future、wait、notify、notifyAll、join、sleep、yeild、线程状态、线程通信

Lifelong learning 6872

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

JAVA线程知识点

java线程知识点大全 java线程知识点大全 1、 什么是线程? 1、 什么是线程? 线程是操作系统能够进行运算的最小单位,他包含在实际的运作单位里面,是进程中的实际运作单位。 程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了...

卢楷方的博客 5676

线程学习-第一节

关于线程的学习-第一节快速认识线程线程的介绍线程启动线程的声明周期 快速认识线程 你好! 线程的介绍 局部变量; 程序计数器; 声明周期; 线程启动 线程启动必须在其中一个人执行之前,否则线程永远得不到启动,因为前一个任务永远不会结束; 创建一个线程,必须重写其中的run方法,把对应要执行方案给它执行 启动新的线程,只有调用了thread的start方法,才会派生一个新的线程,否则threa...

huyuanqiang1679的博客 123

线程基础知识

线程在执行过程中虽然不会完全停止(不像死锁那样完全无法继续),但因为线程彼此互相影响,导致程序无法正常推进或完成任务。线程执行是不管执行顺序的,开始执行时的顺序都是随机的(实际上是操作系统通过算法调度和分配资源,JDK不能影响她)注意:wait和notify需要成对出现,或者wait和notifyAll成对出现,否则可能出现假死锁。方法是不允许有参数的,我们一般要执行的线程都要传参数,所以只能通过继承和实现来解决参数传递的问题。存在生产者消费者之间的问题,如果仓库中只剩下最后一个资源,A线程和B线程争夺。

bear_309的博客 1113

java线程基础知识总结

java线程基础知识总结什么是线程线程的简单使用线程中断线程状态线程属性线程同步ReentrantLock类条件锁注意synchronized关键字同步阻塞volatile关键字线程局部变量stop 和suspend方法被弃用原因阻塞队列Callable、Future和FutureTask执行器 什么是线程 一个程序同时执行多个任务,通常每个任务称为一个线程。 进程和线程区别 进程拥有自己的一整套...

仲斌 3302

java面试中关于线程有什么知识点

Java多线程与并发编程面试要点精粹: 本文系统梳理了Java多线程核心知识点,涵盖基础概念、线程同步、线程池使用、并发工具及JMM模型等面试高频内容。重点包括:4种线程实现方式(推荐Runnable/Callable/线程池)、线程生命周期五大状态、同步机制(synchronized/volatile/Lock)、线程池参数配置(核心三参数:corePoolSize/maxPoolSize/workQueue),以及JUC工具包中的CountDownLatch/CyclicBarrier等实用组件。特别解

m0_74023628的博客 1084

线程知识整理

进程:进程是程序运行资源分配的最小单位。进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、 磁盘 IO 等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程 之间是相互独立的。线程:线程是 CPU 调度的最小单位,必须依赖于进程而存在 线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程更小的、 能独立运行的基本单位。

tommman的博客 1537

【并发编程专题——第一节】

1、从0开始深入理解并发、线程与等待通知机制2、异步编程Future&CompletableFuture实战3、导致JVM内存泄露的ThreadLocal详解4、并发编程之CAS&Atomic原子操作详解5、深入理解独占锁Synchronized底层原理6、JUC并发工具类在大厂的应用场景详解7、深入理解AQS之ReentrantLock源码分析8、Semaphore&CountDownlatch&CyclicBarrier源码分析。

weixin_43841761的博客 735

java线程知识总结

1)当一个类继承了Thread类时,这个类就可以当作线程使用,我们可以重写run()方法,实现自己的业务逻辑,以上示例Cat继承了Thread。1)在多线程编程,有一些敏感数据不允许被多个线程同时访问,此时就用到线程同步访问,保证数据在任何时刻,最多有一个线程访问,从而保证数据完整性。2)当有一个线程对内存地址操作时,其他线程都不能对此内存地址进行操作,直到该线程完成访问,其他线程才能对该内存进行操作。守护线程:为用户线程服务,当用户线程执行完,守护线程自动结束,常见的守护线程有:垃圾回收机制。

weixin_73975059的博客 1683

线程知识点总结

线程学习笔记与总结

m0_64021225的博客 866

线程池(一):线程基础知识全面解析

进程:进程是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位。每个进程都有独立的内存空间、系统资源(如文件描述符、进程间通信资源等)。例如,当我们打开一个浏览器应用,操作系统会为该浏览器创建一个进程,浏览器中的各个标签页、插件等可能在这个进程内或通过其他进程协作运行。线程:线程是进程中的一个执行单元,是程序执行的最小单位。线程共享所属进程的资源,如内存空间、文件描述符等。一个进程可以包含多个线程,这些线程并发执行,提高程序的执行效率。

Chenchen0905_的博客 1263

【Linux】线程与线程安全知识总结

本文总结了一些线程的高频知识点。

叫我龙翔的博客 1359

【Linux的线程篇章 - 线程基础知识储备】

Linux学习笔记015 -- 线程基础等知识。

m0_69455439的博客 852

Java基础知识-线程篇

Java线程池是一种用于管理和重用线程的机制,它提供了一种在执行大量异步任务时有效控制线程的方式。使用线程池可以避免频繁创建和销毁线程所带来的性能开销,并能提高程序的响应速度。除了上述几种预定义的拒绝策略外,你也可以通过实现接口来定义自己的拒绝策略。这个接口只有一个方法:通过实现方法,你可以在拒绝策略触发时自定义处理逻辑,例如记录日志、将任务重新放回队列等。

qq_71748390的博客 1370

常用线程创建方式及基础线程知识点总结

一、常见的几种线程创建方式 1-1、Runnable: 1-2、Thread: 1-3、Callable(配合FutureTask): 1-4、Callable(配合线程池ExecutorService及Future): 1-5、匿名内部类&amp;gt;继承Thread 1-6、匿名内部类&amp;gt;实现Runnable接口 二、线程基础知识点总结 2-1、线程的生命周期及状态转换 2-2、线程的调...

被活捉的花生米的博客 1034
上一篇: 复习Android之Service的AIDL传值
下一篇: 线程知识巩固第二节
jhonjson
博客等级 码龄11年 220粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值