赞
踩
并行是指,多个处理器或者多核处理器同时执行处理多个任务,注意是同时执行。从CPU层面上来看,并发就是大量的任务在同一个CPU核上交替的按CPU提供的时间片运行。
举个栗子:
也就是说并发这样的情况如果是同时发生在多个CPU核上,那么就很有可能出现并行问题。
所以我们在使用多线程时:考虑的一般都是,高并发环境下,程序内部可能发生并行执行而导致某些错误的问题。
我们用的最多的守护线程估计就是 JVM 的垃圾回收线程了,它在后台运行并且在满足一定条件下会进行垃圾回收,也可以按时回收。
所以守护线程,守护线程它是在后台运行的一种特殊进程,它能周期性的执行一些任务,独立于控制终端,也能等待处理某些发生的事件(垃圾回收)。
换句话来说,守护线程它拥有能够结束自己生命周期的能力,直接进行一个我命由我不由天。
我们拿 JVM 的垃圾回收线程来说,当我们的 JVM 要被关闭的时候,如果此时正在进行着垃圾回收,并且得持续一段时间,那么如果垃圾回收线程不是守护线程的话,整个 JVM 就得等到我们这个垃圾回收结束之后才能关闭。
但是如果垃圾回收线程它是守护线程,那么它的垃圾回收和JVM关闭就类似于异步,你可以先走,我自己清理完了我自己走。
也避免了有些时候 JVM 突然崩溃,但是内存中又有对象垃圾,这个时候守护线程就可以再 JVM 崩溃之后,独立的清理完毕这些垃圾然后自我销毁。
以上四个条件就是死锁产生的必要条件。
首先我们可以避免一个线程同时拥有多个锁,或者避免一个线程在所内同时占用多个资源,尽量去保证每个锁只占用一个资源;尝试使用定时锁,就是时间一到就会解锁的锁。
在 Java 中一共有四种:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。