这周学习了异常与多线程,线程使用
Exception异常的分类:
1.编译时异常:继承自Exception
的异常或者其子类,编译阶段就会报错
2.运行时异常:继承自RuntimeException
的异常或者其子类,编译阶段不报错,但是运行阶段报错
异常的处理方式:
1.抛出异常:在出现编译时异常的地方层层把异常抛出去给调用者,调用者最终抛出给JVM虚拟机,JVM虚拟机输出异常信息,直接干掉程序,这种方式与默认方式是一样的。虽然可以解决代码编译时的错误,但是一旦运行时真的出现异常,程序还是会立即死亡,这种方式并不好
2.捕获处理:在出现异常的地方自己处理,谁出现谁处理
finally关键字
进程的三个特征
1.独立性:进程与进程之间是相互独立的,彼此有自己独立内存区域
2.动态性:进程是运行中的程序,要动态的占用内存,CPU和网络等资源
3.并发性:CPU会分时轮询切换依次为每个进程服务,因为切换的速度非常快,给我们的感觉像是在同时执行,这就是并发性
并发:同一时刻同时有多个在执行
线程:线程是属于进程的,一个进程可以包含多个线程,这就是多线程
线程的创建方式一.继承thread类
1.定义一个线程类继承Thread
类
2.重写run()
方法
3.创建一个新的线程对象Thread t = new MyThread();
4.
调用线程对象的start()
方法启动线程
二.实现Runnable接口
创建一个线程任务类实现Runnable接口
重写run()方法
创建一个线程任务对象(注意:线程任务对象不是线程对象,只是执行线程的任务的)
Runnable target = new MyRunnable();
把线程任务对象包装成线程对象,且可以指定线程名称
Thread t = new Thread(target,"1号线程");
调用线程对象的start()
方法启动线程
三.实现Callable接口
定义一个线程任务类实现Callable接口,申明线程返回的结果类型
重写线程任务类的call方法,这个方法可以直接返回执行的结果
创建一个Callable的线程任务对象
把Callable的线程任务对象包装成一个未来任务对象
把未来任务对象包装成线程对象
调用线程的start()方法启动线程
下周将学习线程同步,线程安全,线程通信,集合等知识。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!