Java并发基础
2021/8/2 17:07:44
本文主要是介绍Java并发基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
多进程和多线程有哪些区别呢?
- 资源:每个进程有自己的一套变量,而线程则可以共享数据。
- 通信:共享变量使得线程之间的通信比进程之间的通信更加有效、更容易;
- 创建:创建、撤销一个线程比启动新进程的开销小得多。
什么是线程
使用线程给其他任务提供机会
⚠️ 不要调用Thread类或Runnable对象的run方法。直接调用run方法,指挥执行同一个线程中的任务,而不会启动新线程。应该调用 Thread.start
方法,这个方法将创建一个执行run方法的新线程。
中断线程
没有可以强制线程终止的方法。然而,interrupt方法可以用来请求终止线程。
对一个线程调用 interrupt
方法时,线程的 中断状态 将被置位。这是每一个线程都具有的boolean标志。每个线程都应该不时地检查这个标志,以判断线程是否被中断。
while(!Thread.currentThread().isInterrupted && more work){ // 实例方法 do more work }
如果线程被阻塞,就无法检测中断状态。这是产生InterruptedException异常的地方。当在一个被阻塞的线程(调用sleep或wait)上调用 interrupt方法时,阻塞调用将会被 Interrupted Exception异常中断。
”中断一个线程只是引起线程的注意,被打断的线程可以决定如何响应中断。“
如果使用了循环,并且迭代工作后使用可以被打断的方法(sleep等),那么 isInterrupted 检测既没有必要,也没有用处,因为当线程标记了中断标志,sleep 方法不会再执行,同时将中断标记清除。
这篇关于Java并发基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求