`

sleep 和 wait的方法的区别 stop 和 suspend的方法的区别

 
阅读更多

实现线程有哪几种方法 java5开始还有一些常见线程池的方法 为什么反对用stop 和 suspend()呢

extends Thread  impliments Runnable

修饰同步的方法是Sychronized关键字

stop()可以解开线程获得的所有的锁,如果一个对象在不连贯的状态下,其他线程可以修改和检查它的

suspend()延迟 容易造成死锁,在使用suspend线程会停止 但是 还是会持有原来的锁,除非线程挂起,任何线程如果想获取一个锁定的资源,同时又想恢复自己的目标线程

就会造成死锁。

sleep 和 wait的方法的区别

sleep 是Thread 类的方法,你调用了他,对象不会放弃对象锁,暂停你指定的时间只是让出了cpu

然后恢复,

wait是Object的方法,调用它会放弃对象锁,然后他进入等待此对象的锁的锁定迟池

 只有对此对象的发出notify方法,此对象才能准备获取对象锁进入运行状态,而且

wait是已经进入了一个同步锁的线程内了 然后只有等到其他线程调用notify方法 调用wait线程才能进入去抢夺对象锁,不一定可以马上获取到对象锁,因为锁还在其他线程的手上,还没释放,

 

 

 

分享到:
评论

相关推荐

    Java多线程与并发系列22道高频面试题(附思维导图和答案解析)

    使用stop方法强行终止,但是不推荐这个方法,因为stop和suspend及resume一样都是过期废弃的方法;使用interrupt方法中断线程。 三、notify和notifyAll的区别 notify和notifyAll都是用于线程间的通信的方法,但是...

    Andriod PM suspend-resume 电源管理

    1. 低功耗模式:嵌入式芯片通常具有多种低功耗状态,如STOP、WAIT和DEEP SLEEP。这些模式针对不同应用场景设计,允许设备在不活动时进入更低功耗状态。在动态电源管理中,除了DEEP SLEEP模式外,其他模式间的快速...

    多线程,高并发.pdf

    2. sleep() 和 wait() 有什么区别? 3. 同步和异步有何异同,在什么情况下分别使用他们? 4. 当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法? 5. 简述 synchronized 和 java...

    多线程,高并发.zip

    1. stop() 和 suspend() 方法为何不推荐使用? 反对使用 stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象 处于一种不连贯状态,那么其他线程能在那种状态下...2. sleep() 和 wait() 有什么区别?

    java笔试题大集合及答案(另附各大公司笔试题)

    61、sleep() 和 wait() 有什么区别? 答:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Object类...

    Java后端资料,知识点,面试点

    1. **stop() 和 suspend() 方法不推荐的原因** - `stop()` 方法是不安全的,因为它会立即终止线程,不考虑线程是否持有锁或者其他资源,这可能导致数据一致性问题和资源泄露。 - `suspend()` 方法容易导致死锁,...

    JAVA总结知识点.pdf

    - **阻塞(Blocked)**: 线程进入阻塞状态的情况包括但不限于:调用`sleep()`方法、调用阻塞式I/O方法、尝试获取已被其他线程持有的锁、等待通知(`notify()`)、或调用已废弃的`suspend()`方法。其中,`suspend()`...

    Java面试-线程编程、Jsp、Servlet、Jdbc、Jdo、Xml方面.doc

    1. stop()和 suspend()方法不推荐使用,stop()方法会解除由线程获取的所有锁定,而suspend()方法容易发生死锁。应该在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。 2. sleep()和wait()方法的区别,...

    多线程,高并发面试题.pdf

    在Java多线程编程中,有一些问题和知识点是面试...综上所述,在Java多线程编程中,正确使用不同的同步机制和方法可以保证程序的正确性和效率。理解和掌握这些知识对于通过面试和编写高质量的多线程代码都是非常重要的。

    多线程,高并发1

    1. **stop() 和 suspend() 方法的不推荐使用**: - `stop()` 方法不安全,因为它会强制终止线程,导致线程持有的所有锁都被立即释放,这可能导致数据一致性问题和资源泄漏。 - `suspend()` 方法容易引发死锁,因为...

    java多线程,高并发面试题.pdf

    #### 二、`sleep()` 和 `wait()` 有什么区别? - **`sleep()` 方法**: - **主动让出 CPU**:调用 `sleep(long millis)` 方法会使当前线程暂停指定的毫秒数,期间线程将主动让出 CPU,允许其他线程执行。 - **不...

    面试题java

    2. **`sleep()`与`wait()`的区别**: - `sleep()`是`Thread`类的方法,使线程暂停执行指定时间,不会释放对象锁。 - `wait()`是`Object`类的方法,用于线程间通信,让线程等待,直到收到通知(`notify()`或`...

    Java 线程详解

    在 Java 中,线程的通信可以通过 wait、notify 和 notifyAll 方法实现。wait 方法可以让线程等待某个事件的发生,notify 方法可以唤醒等待的线程,而 notifyAll 方法可以唤醒所有等待的线程。 在 Java 中,线程的...

    线程编程方面若标志指出线程应该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。

    `sleep()`和`wait()`方法虽然都能让线程暂停执行,但它们之间存在显著差异。`sleep()`是`Thread`类的方法,它不会释放对象锁,只是让当前线程暂时休眠。而`wait()`属于`Object`类,调用`wait()`会让线程放弃对象锁,...

    Java多线程机制研究.pdf

    Thread类提供了几个方法来控制线程的生命周期,如start()方法、stop()方法、suspend()方法、resume()方法、sleep()方法等。 线程同步 Java多线程机制中,同步是指多个线程之间的相互影响和约束,以确保多个线程...

    java线性编程方面

    对于不推荐使用的stop()和suspend()方法,它们之所以不安全是因为stop()会释放所有锁,可能导致对象处于不一致的状态;而suspend()可能会引起死锁,因为它不释放锁。 3. sleep()与wait()方法: sleep()方法属于...

    J2EE全套笔试面试题

    4. **sleep()和wait()的区别**:`sleep()`是`Thread`类的方法,让当前线程暂停执行一段时间,不释放对象锁。`wait()`是`Object`类的方法,使线程进入等待状态,释放对象锁,需要其他线程调用`notify()`或`notifyAll...

    JAVA面试_多线程,高并发相关14个问题.pdf

    1. **stop() 和 suspend() 方法为何不推荐使用?** - `stop()` 方法不安全,因为它会强制终止线程,这可能会导致数据不一致,因为它会立即解除线程持有的所有锁,使对象处于不一致状态。 - `suspend()` 方法可能...

    Java线程编程方面面试题详解

    不推荐使用`stop()`和`suspend()`方法,因为`stop()`可能导致资源解锁和不一致的状态,`suspend()`则可能引发死锁。 61、`sleep()`是`Thread`类的方法,它使当前线程暂停指定时间,不会释放对象锁。`wait()`是`...

Global site tag (gtag.js) - Google Analytics