多线程的学习

程序:一段静态的代码,是应用软件执行的蓝本

进程:程序一次动态执行的过程,对应从代码加载,执行到执行完毕的一个完整过程

线程:比进程更小的执行单位

多线程的基本概念:每个进程都有一段专用的内存区域,多个进程的内部数据和状态都是完全独立的多个线程可共享一块内存空间和一组系统资源,有可能互相影响

创建线程对象,要告诉线程所要执行的代码,即run()方法

创建线程的两种方式

继承Thread类 实现Runnable接口

继承Thread类 public class类名 extends Thread 在其中假如属性,同时覆盖run()方法, 创建线程对象后,调用其start方法,启动线程

利用向Thread()构造方法传递Runnable对象来创建线程 public class 类名 implements Runnable{}

类名 对象名=new 类名(实参表) Thread 线程对象名=new Thread(对象名)

注意:

run()方法规定了线程要执行的任务,但一般不是调用run()方法,而是通过线程的start()方法来启动线程

sleep()方法表示线程休眠,时间单位为毫秒,但实际休眠所用时间一般不会等于给定的时间值,休眠过程中可能会被其他线程中断,所一要求捕获 InterruptedException异常

创建线程的两种方法的比较

直接继承Thread类,编写简单,可以直接操纵线程,但是不能再继承其他类

使用Runnable接口,可以将Thread类与所要处理的任务的类分开,形成清晰的模型,还可以从其他类继承

线程的优先权

newthread.setPriority() 线程的级别有10级,默认的是5

自私的线程:有很高的优先权的线程,不主动睡眠或让出处理器控制权

线程的常用方法

run方法

运行线程的主体,启动线程时,由java直接调用

stop方法

停止线程

sleep方法

暂停线程执行,让其他线程得到机会,sleep要抛出异常,必须抓住

还有join()方法等待的时"线程终止",这个方法的使用契机

|--------|----------------------|---------------|
| 场景类型 | 核心特征 | join() 是否必要 |
| 结果依赖型 | 主线程需要子线程的计算结果/执行结果 | 是 |
| 无依赖并行型 | 主线程和子线程各自执行独立任务,互不依赖 | 否 |

相关推荐
lizhihai_991 小时前
股市学习心得-六张分时保命图
大数据·人工智能·学习
我星期八休息1 小时前
IT疑难杂症诊疗室:AI时代工程师Superpowers进化论
linux·开发语言·数据结构·人工智能·python·散列表
热心网友俣先生1 小时前
2026年第二十三届五一数学建模竞赛C题超详细解题思路+各问题可用模型推荐+部分模型结果展示
c语言·开发语言·数学建模
01漫游者1 小时前
JavaScript函数与对象增强知识
开发语言·javascript·ecmascript
GottdesKrieges2 小时前
OceanBase恢复常见问题
java·数据库·oceanbase
IGAn CTOU2 小时前
Java高级开发进阶教程之系列
java·开发语言
leo825...2 小时前
Claude Code Skills 清单(本地)
java·python·ai编程
csbysj20202 小时前
SQL NULL 函数详解
开发语言
其实防守也摸鱼2 小时前
CTF密码学综合教学指南--第三章
开发语言·网络·python·安全·网络安全·密码学
NGSI vimp2 小时前
Java进阶——如何查看Java字节码
java·开发语言