b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

JAVA中的线程死锁是什么意思

电脑杂谈  发布时间:2020-04-06 08:06:44  来源:网络整理

线程死锁的原因_多线程死锁的例子_解决线程死锁

全部展开

一个. 什么是线程

当谈到线程死锁时,我们必须首先了解什么是Java线程. 一个程序的进程将包含多个线程,一个线程是一个进程中运行的逻辑流. 多线程允许在一个程序中同时执行多个指令流. 每个指令流都称为线程,并且彼此独立.

多线程死锁的例子_线程死锁的原因_解决线程死锁

线程也称为轻量级进程. 它们具有类似于进程的独立执行控制,并由操作系统调度. 区别在于线程没有独立的存储空间,而是与进程中的其他线程共享存储空间,这使线程之间的通信比进程更简单. 作者的经验是编写多行程序,我们必须注意每个线程是否干扰其他线程的工作. 当每个进程开始其生命周期时,它是一个单线程,称为“主线程”. 在某个时候,主线程会创建一个对等线程. 如果主线程停止运行,系统将切换到其对等线程. 现在,与进程关联的线程将形成一个对等线程池,并且一个线程可以杀死其任何对等线程.

因为每个线程都可以读取和写入相同的共享数据. 这带来了新的麻烦: 数据共享将导致同步问题,这将导致死锁.

两个. 死锁的机制

解决线程死锁_线程死锁的原因_多线程死锁的例子

多线程带来的性能提高是以可靠性为代价的,这主要是由于线程死锁的可能性. 死锁是指同时阻塞多个线程,并且其中一个或所有线程都在等待释放资源的情况. 由于线程被无限期阻塞,因此程序无法正常运行. 简而言之: 当线程处于死锁状态时,第一个线程等待第二个线程释放资源,而第二个线程等待第一个线程释放资源. 这是一个受欢迎的示例: 如果两个人在人行道上面对面相遇,为了彼此让位,两个人同时向一侧迈出一步,则两侧无法通过,而是迈出一步同时到另一边,所以仍然无法通过. 假设这种情况继续下去,就会发生死锁.

死锁的根本原因是不恰当地使用了“ synchronized”关键字来管理对特定对象的线程访问. “ synchronized”关键字的作用是确保一次只允许一个线程执行特定的代码块,因此允许执行的线程必须首先具有对变量或对象的独占访问权限. 当一个线程访问一个对象时,该线程将锁定该对象,并且该锁定导致也希望访问同一对象的其他线程被阻塞,直到第一个线程释放它添加到该对象的锁为止.

Java中的每个对象都有一个与其对应的锁. 但是Java没有提供单独的锁定和解锁操作. 作者在下面分析了死锁“锁定”和“锁定”的两个过程.

多线程死锁的例子_线程死锁的原因_解决线程死锁

(1)锁定

许多线程必须考虑在执行期间与其他线程共享数据或协调执行状态. 需要同步机制. 因此多线程死锁的例子,大多数应用程序要求线程彼此通信以同步其动作. 在Java程序中实现同步的最简单方法是锁定. 在Java编程中,所有对象都有锁. 线程可以使用synced关键字来获取锁. 对于任何给定的类实例,方法或同步代码块一次只能由一个线程执行. 这是因为代码在执行之前需要对象锁定.

为了防止同时访问共享资源多线程死锁的例子,线程可以在使用资源之前和之后锁定和解锁资源. 锁定共享变量使Java线程可以快速轻松地进行通信和同步. 如果一个线程锁定了一个对象,则可以知道没有其他线程可以访问该对象. 即使在抢占式模型中,其他线程也无法访问该对象,直到唤醒锁定的线程,完成工作并解锁锁. 那些尝试访问锁定对象的线程通常会进入睡眠状态,直到锁定线程解锁. 打开锁后,这些睡眠过程将被唤醒并移至就绪队列.

解决线程死锁_多线程死锁的例子_线程死锁的原因

(2)锁定

如果程序中有多个并发线程争夺资源,则确保平衡很重要. 系统平衡意味着每个线程在执行期间都可以完全访问有限的资源,并且系统中没有线程出现饥饿或死锁的情况. 当多个并发线程尝试同时占用两个锁时,将发生锁冲突. 如果一个线程占用了另一个线程所需的锁,则在互相等待时被阻塞时,可能会发生死锁.

在编写多线程代码时,我认为死锁是最难处理的问题之一. 因为死锁可能发生在最意想不到的地方,所以找到并纠正它既费时又费力. 例如,下面的程序就是一个常见的例子.

public int sumArrays(int [] a1,int [] a2)... {int值= 0; int size = a1.length; if(大小== a2.length)... {已同步(a1)... {// 1已同步(a2)... {// 2 for(int i = 0; i

此代码在求和操作中访问两个数组对象之前将其锁定. 它形式简短,适合于要执行的任务;不幸的是,它有潜在的问题. 问题在于它已经为僵局埋下了.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-165689-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...