线程阻塞和挂起(网络收集)
线程阻塞
线程在运行的过程中因为某些原因而发生阻塞,阻塞状态的线程的特点是:该线程放弃CPU的使用,暂停运行,只有等到导致阻塞的原因消除之后才回复运行。或者是被其他的线程中断,该线程也会退出阻塞状态,同时抛出InterruptedException。
一般线程中的阻塞:
A、线程执行了Thread.sleep(int millsecond);方法,当前线程放弃CPU,睡眠一段时间,然后再恢复执行
B、线程执行一段同步代码,但是尚且无法获得相关的同步锁,只能进入阻塞状态,等到获取了同步锁,才能回复执行。
C、线程执行了一个对象的wait()方法,直接进入阻塞状态,等待其他线程执行notify()或者notifyAll()方法。
D、线程执行某些IO操作,因为等待相关的资源而进入了阻塞状态。比如说监听system.in,但是尚且没有收到键盘的输入,则进入阻塞状态。
线程挂起
线程的挂起操作实质上就是使线程进入"非可执行"状态下,在这个状态下CPU不会分给线程时间片,进入这个状态可以用来暂停一个线程的运行。在线程挂起后,可以通过重新唤醒线程来使之恢复运行。
Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的。如果在不合适的时候挂起线程(比如,锁定共享资源时),此时便可能会发生死锁条件——其他线程在等待该线程释放锁,但该线程却被挂起了,便会发生死锁。另外,在长时间计算期间挂起线程也可能导致问题。
线程挂起是操作系统底层的逻辑。线程阻塞是JAVA的逻辑。一定程度上说,JAVA中的线程阻塞(sleep 锁等待 wait等)是通过挂起实现的(挂起线程是其中一种实现阻塞的方式,还有一种是不断的try lock)。
转载于:https://www.cnblogs.com/xiaolang8762400/p/7072095.html
线程阻塞和挂起(网络收集)相关推荐
- 线程和进程/阻塞和挂起以及那些sleep,wait()和notify()方法详解
线程与进程的阻塞 线程阻塞 线程在运行的过程中因为某些原因而发生阻塞,阻塞状态的线程的特点是:该线程放弃CPU的使用,暂停运行,只有等到导致阻塞的原因消除之后才回复运行,或者是被其他的线程中断,该线程 ...
- 线程的挂起是错误的概念实际是线程的阻塞,挂起只针对进程,将进程挂起会将进程从内存空间交换到磁盘空间的过程
线程的挂起是错误的概念实际是线程的阻塞 线程的主要状态有运行态,就绪态和阻塞态.挂起态对线程没有什么意义,这是由于此类状态是一个进程级的概念.特别地,如果一个进程被换出,由于它的所有线程都该进程的地址 ...
- 线程和进程/阻塞和挂起
曾多次迷惑于阻塞和挂起状态,后来才发现,有一些文章没有区别,把(阻塞.挂起.等待)等同了,这时看语境作者说的是哪个.自己加以分析区别. 先大概这样理解一下: 挂起:一般是主动的,由系统或程序发出,甚至 ...
- Silverlight+WCF 实战-网络象棋最终篇之非线程阻塞倒计时窗口(四)
前言: 在前面的系列中,我们虽然完成了其大部分功能,但是,离正真运行,还是有一大段距离 当你F5运行时,在弹出对话框之后,如果你不即时点确定,或者上个WC回来之后,你会发现已经提示出错了 这节开始,我 ...
- weblogic线程阻塞性能调优(图解)
转自:http://blog.csdn.net/z69183787/article/details/12647539 声明:出现这个问题有程序方面.网络方面.weblogic设置方面等等原因,此文章主 ...
- weblogic线程阻塞性能调优(图解)转
声明:出现这个问题有程序方面.网络方面.weblogic设置方面等等原因,此文章主要讲述由于weblogic设置而导致的解决办法. 因为: 1.程序问题,需要项目自己去解决,weblogic在做优化处 ...
- oracle线程阻塞_Oracle Service Bus –线程阻塞案例研究
oracle线程阻塞 本案例研究描述了在AIX 6.1和IBM Java VM 1.6上运行的Oracle Service Bus 11g遇到的线程阻塞问题的完整根本原因分析过程. 本文也是您提高线程 ...
- Oracle Service Bus –线程阻塞案例研究
本案例研究描述了在AIX 6.1和IBM Java VM 1.6上运行的Oracle Service Bus 11g遇到的线程阻塞问题的完整根本原因分析过程. 本文也是您提高线程转储分析技能的绝佳机会 ...
- C++ 技术资料(大视野网络收集) 1
C++ 技术资料(大视野网络收集) 用VC制作初始画面 宋端智 贾皓丽 VC命名管道通信的实现 冷山述 用VC修改目录的日期和时间 温卫红 基于人机对战的五子棋游戏 胡朝晖 在ActiveX控件中引入 ...
最新文章
- 成为技术领导者——解决问题的有机方法
- linux samba代码,Linux下Samba服务器源码安装及配置
- SAP CRM Appointment应用里Date profile的配置
- Codeforces Round #712 (Div. 2) E. Travelling Salesman Problem 思维转换
- 【转】Azure应用部署方式对比
- Express-router
- C语言输出空格逐级递减,2021年计算机2级c语言笔试部分-20210514115908.doc-原创力文档...
- Java 进阶基础知识
- keras读取训练好的模型参数并把参数赋值给其它模型
- MATLAB怎么加0x,matlab 0xc0150002的解决办法
- 基于SSM的医院预约挂号系统 JAVA MYSQL
- MATLAB2018simulink打不开MATLAB2019b的simulink,低版本simulink模型出现
- IN 与 DISTINCT
- Scheme Language
- image_thumb
- 注解@AllArgsConstructor @NoArgsConstructor是 什么意思
- python获取视频帧率,总帧数,分辨率等视频信息
- 修复安装OFFICE时提示错误的解决方法
- 土办法解决日期转换问题,转出格式为。。。 贰零壹陆年零壹月零捌日
- Opencv(python)图像梯度和边缘检测算法