JAVA复习之线程

vllm运行过程中出现cuda out of memory 将长序列分解为多个小块,每个块分别处理。这样可以减少单次 Prefill 的计算量和显存占用,从而优化 TTFT 和显存使用效率。考虑使用 CPU 卸载(如 --cpu-offload-gb),将部分缓存卸载到 CPU 内存中,扩展 GPU 的虚拟内存。在大语言模型中,当输入序列很长(例如超过 1024 个 Token)时,Prefill 阶段的计算量会非常大。最后增加了enable-chunked-prefill参数和max_num_batched_tokens解决了问题。参数来进一步优化性能。 阅读详情

一、线程

在这里插入图片描述

二、线程的特点

在这里插入图片描述

三、线程的生命周期

在这里插入图片描述

四、Thread类

Thread类是java.lang包中的一个类,Thread类的对象用来代表线程,通过继承Thread类创建、启动并执行一个线程的步骤:①创建一个继承Thread类的子类;②覆写Thread类的run()方法;③创建线程类的一个对象;④通过线程类的对象调用start()方法启动线程(启动之后会自动调用覆写的run()方法执行线程)。
在这里插入图片描述
在这里插入图片描述

案例分析:

public class Demo5 {
    public static void main(String[] args) {
        ThreadA threadA = new ThreadA();
        threadA.start();
        ThreadB threadB = new ThreadB();
        threadB.start();
    }
}
class ThreadA extends Thread{
    public void run(){
        for(int i=0;i<100;i++){
            System.out.println(i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
class ThreadB extends Thread{
    public void run(){
        for(char i= 'a';i<'z';i++){
            System.out.println(i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

五、Runnable接口

在这里插入图片描述

六、线程的休眠

在这里插入图片描述

七、线程的加入

在这里插入图片描述

八、线程的中断

在这里插入图片描述

九、线程的安全

(一)案例之线程不安全,出现脏读

public class Demo6 implements Runnable{
    int num = 10;
    public static void main(String[] args) {
        Demo6 demo = new Demo6();
        Thread t1 = new Thread(demo,"线程一");
        Thread t2 = new Thread(demo,"线程二");
        Thread t3 = new Thread(demo,"线程三");
        Thread t4 = new Thread(demo,"线程四");
        t1.start();
        t2.start();
        t3.start();
        t4.start();
    }
    @Override
    public void run() {
        while (true){
            if(num>0){
                System.out.println("票数:"+num--);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

在这里插入图片描述

(二)线程同步机制synchronized关键字

在这里插入图片描述
两种方法:
在这里插入图片描述
案例剖析:

public class Demo6 implements Runnable{
    int num = 10;
    public static void main(String[] args) {
        Demo6 demo = new Demo6();
        Thread t1 = new Thread(demo,"线程一");
        Thread t2 = new Thread(demo,"线程二");
        Thread t3 = new Thread(demo,"线程三");
        Thread t4 = new Thread(demo,"线程四");
        t1.start();
        t2.start();
        t3.start();
        t4.start();
    }
    @Override
    public void run() {
        while (true){
            synchronized (this){
                if(num>0){
                    System.out.println("票数:"+num--);
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

在这里插入图片描述

SMPTE ST 2110 概论(一) SMPTE ST 2110 概论(一)前言ST 2110与ST 2022-6ST 2110-10:基本结构与时序ST 2110-20:未压缩的视频流后续 前言 这是一份我在实习期间制作的,关于SMPTE ST 2110的简单介绍。 这篇文章主要以梳理总结 SMPTE ST 2110 的概念为主,关于具体的内容,比如IP数据报的格式、RTP时间戳的具体代码内容等等,大家可以查阅 SMPTE ST 2... 阅读详情

相关推荐

医学影像弹性形变处理

这段代码的主要流程是:读取 DICOM 医学影像,尝试使用 MONAI 进行弹性形变(根据版本适配),如果失败则使用 OpenCV 实现,最后可视化并保存处理结果。这样可以在不同环境下灵活处理医学影像的弹性形变需求。后面会写一篇解释弹性变形方法的短文。

wh_xia_jun的专栏 779

java多线程---顺序打印ABC的三种实现---join方法

使用join方法,让三个线程之间存在等待关系 代码如下: package com.zcj.join; public class JoinTest { public static void main(String[] args) { ThreadA threadA = new ThreadA(); ThreadB threadB = new ThreadB(threadA);

搬砖小松鼠的博客 4203

Linux下用SquareLine Studio开发LVGL界面:从安装到实战的完整避坑指南

本文提供了一份在Linux系统下使用SquareLine Studio开发LVGL图形界面的完整实战指南。内容涵盖从SDL库安装、SquareLine Studio环境配置、界面可视化设计,到工程导出、源码编译及常见错误排查的全流程。重点解析了如何将设计界面无缝集成到Linux开发流程中,并针对嵌入式设备移植提供了关键步骤,旨在帮助开发者高效避坑,快速上手LVGL界面开发。

egg99的博客 905

java多线程编程(2)通过join按顺序依次打印ABC

前言 这次的题目讲一个另一个多线程的关键字join,当使用join()的时候,当前线程会让出执行权,让join线程优先进行 题目 3个线程,打印出ACB 代码 public class Test14A extends Thread{ public void run(){ System.out.println("A start"); System.out.println("A"); } } public class Test14B extends Threa

仌程序员的博客 700

a股level2数据接口的最优委托信息

Level-1提供的数据并不可以知道委托了xxx手是有多少人下的,以及每个人下了多少的明细。通过Level-2的这个详细买卖盘数据,盘口上的单子到底是散户小打小闹,还是主力真刀实枪在干,都一览无余。交易类型:1-市价,2-限价,3-本方优先,10-撤单, 11-暂不清楚( 基金/ 债券有此值)除了提供逐笔成交记录这个信息外,还提供了最优委托信息,也就是盘口中前50笔订单的委托数量明细。那么Level-2盘口委托数据的速度更新是非常快的,大家可以通过。交易方向:0-未知,1-买入,2-卖出。

Qq_2037696191的博客 1168

从配置文件加载顺序揭秘:为什么你的logback.xml读不到application.yml?

本文深入解析了Spring Boot中logback.xml无法读取application.yml配置的原因,揭示了Spring Boot配置加载机制与日志系统初始化的时序问题。通过对比logback.xml与logback-spring.xml的差异,提供了使用springProperty标签和系统属性传递等解决方案,帮助开发者有效解决日志配置问题。

weixin_29214335的博客 364

多线程中的Join()方法

Join,单词本事就是连接的意思。 先贴出几段代码猜猜结果。     public static int Main()          {                       Alpha oAlpha = new Alpha();             Thread Thread1 = new Thread(delegate() {                 Co

愿世界和平的IT劝退师 329

RK3588开发笔记-MIPI-CSI接口视频解码芯片XS9922B调试

Rockchip RK3588 是一款高性能的处理器,支持多种摄像头接口,包括 MIPI(Mobile Industry Processor Interface)接口。MIPI是一种用于移动设备和嵌入式系统中的摄像头、显示器和其他传感器设备的串行接口标准。MIPI是MIPI联盟发起的为移动应用处理器制定的开放标准。CSI-2(Camera Serial Interface 2)是MIPI 联盟定义的另一种高速接口,主要用于摄像模组和处理器之间的连接。

flypig has a dream! 6863

java 交替打印AB_Java实现两个线程交替打印1-100

这道java基础题主要考察的是对java并发基础知识的掌握,一般需要掌握多线程中的wait(),notify(),notifyAll(),join(),yield(),sleep()等方法的灵活使用。class TestThread implements Runnable {int i = 1;@Overridepublic void run() {while (true) {/*指代的为Test...

weixin_31584817的博客 1015

【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁

【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁

perseverance51博客 1121

游戏玩家和排行数据抓取:使用 Python 爬虫抓取游戏中的玩家排名、角色数据和战绩

对于游戏开发者、分析师和玩家本身来说,抓取游戏中的玩家排名、角色数据和战绩信息是一项至关重要的任务。Python提供了强大的爬虫库和数据处理工具,可以帮助我们高效地抓取和分析游戏数据,为游戏分析师、开发者以及玩家本身提供有价值的数据支持。通过本篇博客,我们学习了如何使用Python爬虫技术抓取游戏中的玩家排名、角色数据和战绩。本篇博客将详细介绍如何使用Python编写爬虫来抓取游戏中的玩家排名、角色数据和战绩,并结合最新的技术来实现高效的数据抓取与处理。为了方便后续的数据处理,我们将抓取的数据保存到。

2201_76125261的博客 945

java多线程顺序打印ABC Join方式

/** * https://blog.youkuaiyun.com/Evankaka/article/details/80800081 * join 让当前线程执行完之后执行接下来的逻辑 */ public class JoinABC { public static void main(String[] args) throws InterruptedException { Thread threadA = new Thread(new Runnable() { .

wilson的专栏 742

Python库CloudScraper详细使用(绕过 Cloudflare 的反机器人页面的 Python 模块)

CloudScraper是一个专门用于绕过Cloudflare反机器人保护的Python库,它基于requests库构建,能够处理Cloudflare的5秒盾、WAF和人机验证等防护机制。

数据知道的博客 1万+

java线程复习

摘要:线程是CPU执行的最小单元,进程是操作系统资源分配的基本单位。Java创建线程有四种方式:继承Thread类、实现Runnable/Callable接口、使用线程池。线程常用方法包括start()、sleep()、join()等,具有6种生命周期状态。多线程能提高效率但需注意线程安全问题,可通过synchronized同步(方法或代码块)或ReentrantLock实现线程同步,需避免死锁。线程通信使用wait()/notify()实现协调,与sleep()的区别在于所属类、唤醒机制和锁释放。生产者-

2301_80658096的博客 739

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java复习03 多线程

现在,你不想或者不能直接让这个主题去做某件事情,你就创建一个代理,这个代理看起来和主题一样,可以做相同的事情。游戏里你可能会用“跳跃”、“蹲下”、“冲刺”这样的命令来控制你的角色,而在Java编程游戏中,关键字是帮助你控制计算机做事的特殊单词。多线程就好比你在工厂里有很多小机器人一起工作,每个机器人都在做不同的任务,比如一个在装配车轮,一个在画颜色,另一个在打包。这种代理是“静态”的,因为你必须在程序运行之前就决定好谁是代理,谁是主题,就像你在报名表演之前就决定好让你的朋友帮你报名一样。

weixin_47558943的博客 886

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java多线程实现——复习记录

当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程/* 新建 */NEW ,/* 可运行状态 */RUNNABLE ,/* 阻塞状态 */BLOCKED ,/* 无限等待状态 */WAITING ,/* 计时等待 *//* 终止 */TERMINATED;// 获取当前线程的状态通过源码我们可以看到Java中的线程存在6种状态,每种线程状态的含义如下。

ze15829163918的博客 843

假人有限元模型

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

java多线程复习

线程池的配置可以由构造函数进行指定其中核心线程数和最大线程数没什么好说的,从最大存活时间和它的单位开始。

2403_83653449的博客 720

Java基础专项复习6——多线程

sleep`、`yield`是`Thread`类的方法,`sleep`必须捕获异常,可在任何地方使用。通过`wait`和`notify`(或`notifyAll`)方法实现,共享数据操作需在同步代码块中进行,生产者和消费者线程通常在`while (true)`循环中实现。:实现`Runnable`接口的`run`方法,将实现类对象作为参数传递给`Thread`类的构造函数来创建线程对象,再调用`start`方法启动线程。会随着主线程的结束而结束,通过`setDaemon(true)`方法设置。

2301_78566776的博客 846

java 线程到线程池到锁 复习总结

本质上不是一篇技术文章,而是复习笔记

zone_four的博客 414

java复习之多线程

java多线程

guangod的博客 249

Java线程基础面试复习笔记

本文介绍了多线程编程的核心概念与实现方法。主要内容包括:1)线程与进程的区别,重点在内存空间、资源开销和通信方式的差异;2)并发与并行的概念解析;3)四种线程创建方式及其特点;4)线程状态转换机制;5)线程控制方法(join、wait/notify等);6)线程安全停止的最佳实践。文章通过对比分析(如run()与start()、wait()与sleep()等)和代码示例,系统性地阐述了多线程编程的关键技术与注意事项,为开发者提供了实用的参考指南。

weixin_74224250的博客 968

Java基础八股复习2 线程

线程在创建后首先进入 NEW(新建)状态,调用 start() 方法后进入 READY(就绪)状态,等待 CPU 时间片分配;方法锁/代码块锁,一般用在方法或者代码块上,原理是通过jvm的monitor监视器监视每个对象是否被使用,被使用则会阻塞线程,同步代码块执行完时自动释放,不会有死锁的情况;嗯,线程死锁一般是因为在执行过程中某个资源被占用或者被锁住无法获取,导致任务无法进行,一般是需要在执行任务前,先把所需要的资源全部获取到,再执行任务;1)new Thread() , 刚被创建,还未执行任务。

weixin_41624462的博客 186

【Java多线程-----复习】

多线程是指在一个程序中同时运行多个执行线程的编程技术。

qq_45467608的博客 1115

Java复习之多线程

java复习之多线程 要想知道什么是多线程,首先我们要知道进程和线程之间的联系:进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守候线程都结束运行后才能结束。 程序的每一个部分都称作一个线程,并且每个线程定义了一个独立的执行路径。 而多线程是多任务的一种特别的形式,是实现并发的一种有效手段,多...

qq_40720991的博客 199

Java多线程复习

hread类位于java.lang包,JDK1.0引入。线程的创建、调度、执行、销毁等由内核进行控制,调度过程通过抢占式策略进行调度。/**// run不能带参数 所以初始化的时候把id初始化成功 MyTask(int id) {System . out . println(name + "即将执行任务:" + id);try {} System . out . println(name + "完成了任务:" + id);} }/**

心有—林夕的博客 2003

Java复习 多线程实现简易版龟兔赛跑

/** * 模拟龟兔赛跑 * * @author liujunwei1016 * */ public class Game implements Runnable { private String winner; @Override public void run() { for(int steps =1; steps<=100;steps++) {...

liujunwei6的博客 613
上一篇: JAVA复习之I/0(输入/输出)
下一篇: 详解官网下载mysql的jar包
智汇风渔AI小白
博客等级 码龄7年 1万+粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇风渔AI小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值