极客时间线程作业题

这篇博客详细介绍了线程和进程的区别,多线程带来的问题,如线程安全和死锁现象。进一步讨论了synchronized和volatile在并发中的作用,以及为何使用线程池并如何创建。最后提到了ThreadLocal的Map中使用弱引用的原因,以防止内存泄漏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目1 什么是线程和进程

进程是正在运行的一个程序,
线程是进程里的一个执行单元。
不同的进程有自己独立的内存空间,线程的内存空间比较复杂,堆和方法区是共享的,栈是独有的。
CPU将时间片轮流分配给不同线程执行,在切换线程时cpu需要将上一个线程执行的相关信息保存下来以供下次又轮到该线程执行时使用,同时需要找到下一个要执行的线程的信息。这个过程叫做线程的上下文切换。
线程的并发是单位时间段有多个线程执行,并行是单位时间段有多个线程同时执行。

题目2 使用了多线程会带来什么问题

线程安全
线程安全问题是多个线程访问共享资源时出现的异常情况
原子性 类似于数据库层面的原子性,全都成功或者全不成功
有序性 程序指令执行的顺序就是程序中能看到的,显式的顺序
可见性 一个线程对共享变量的修改能被另一个线程看到

题目3 什么是死锁

线程1在拥有锁A的前提下尝试获取锁B,并且在获取到锁B之前不会释放A,线程2在拥有锁B的前提下尝试获取锁A,并且在获取到锁A之前不会释放锁B。此时两个线程会无限等待下去,发生死锁。
jps -l 可以显式的看到死锁输出,但不知道如何在不知道发生了死锁的情况下定位到发生了死锁*

题目4 synchronized,volatile的原理区别

JMM内存模型是线程的内存空间和主内存之间的关系,线程不是直接操作主内存中的变量,操作的是本地的副本
synchronized可以修饰代码块,修饰函数。实现方式之前是锁,后来是管程,满足原子性,可见性和

### 极客时间大模型微调课概述 极客时间提供了丰富的资源来帮助学习者深入理解并实践大模型微调技术。其课设计不仅涵盖了理论基础,还包含了多种实战训练项目,使学员能够全面掌握微调的核心技能[^2]。 #### 课主要内容 - **主流微调技术讲解** 该课详细介绍了当前流行的微调技术,包括但不限于全量微调、模型量化(如 GPTQ 和 AWQ 基于 OPT 的实现)、LORA 微调以及 QLoRA 微调等方法。 - **具体案例分析与实操** 学员可以通过实际操作加深对不同场景下微调的理解。例如,针对 Whisper-Large-v2 的中文语音识别进行了 LORA 微调;对于 ChatGLM3-6B 实施了 QLoRA 微调;还有基于私有数据的 ChatGLM3 微调和 LLaMA2-7B 的指令微调等内容均被纳入教学计划中。 - **分布式训练支持** 使用 DeepSpeed ZeRO-2 及 ZeRO-3 技术进行高效分布式的训练也是本课的一大亮点,这有助于处理更大规模的数据集和更复杂的模型结构。 #### 学习体验反馈 根据部分参与者的总结,在完成为期一段时间的学习之后,他们普遍认为自己获得了显著的成长,并解决了工作中遇到的一些关键技术难题[^3]。此外,也有同学提到希望未来版本能增加更多前沿技术和工具的应用实例分享。 以下是官方链接地址供进一步查阅:[极客时间 - AI 大模型微调训练营](https://u.geekbang.org/subject/finetuning?utm_source=u_nav_web&utm_medium=u_nav_web&utm_term=u_nav_web)[^4] ```python import torch from peft import PeftModel, get_peft_config from transformers import AutoTokenizer, AutoModelForCausalLM # 加载原始模型 model_name_or_path = "bigscience/bloomz" tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) base_model = AutoModelForCausalLM.from_pretrained(model_name_or_path) # 配置 PEFT 参数 peft_config = get_peft_config(peft_type="LORA", r=8, lora_alpha=16, lora_dropout=0.05) # 应用 LoRA 到模型上 lora_model = PeftModel(base_model, peft_config) print(f"LoRA 模型参数数量: {sum(p.numel() for p in lora_model.parameters())}") ``` 上述代码片段展示了如何利用 Hugging Face 的 `transformers` 和 `peft` 库快速搭建一个带有 LoRA 支持的语言生成模型。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值