文档章节

线程类Thread sleep 与wait的区别

l
 lvzi98
发布于 01/15 10:11
字数 187
阅读 7
收藏 0

1、sleep是Thread类的方法,wait是Object类的方法

2、sleep不会释放对象锁,wait会释放锁

3、sleep不需要与synchronized一起使用,wait需要

4、sleep不需要唤醒,wait需要

import java.util.stream.Stream;


public class DifferenceOfWaitAndSleep {

    private final static Object LOCK = new Object();

    public static void main(String[] args) {
        Stream.of("T1", "T2").forEach(name ->
                new Thread(name) {
                    @Override
                    public void run() {
                        m2();
                    }
                }.start()
        );
    }

    public static void m1() {
        synchronized (LOCK) {
            try {
                System.out.println("The Thread " + Thread.currentThread().getName() + " enter.");
                Thread.sleep(20000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }


    public static void m2() {
        synchronized (LOCK) {
            try {
                System.out.println("The Thread " + Thread.currentThread().getName() + " enter.");
                LOCK.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

 

© 著作权归作者所有

l
粉丝 3
博文 16
码字总数 5418
作品 0
闵行
私信 提问
Java中sleep()与wait()的区别

第一种解释: 功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩. 还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果...

今幕明
2014/03/08
180
0
java中sleep和wait的区别

最近在看java的东西。看到了java多线程,注意到sleep和wait,不太清楚它们之间的区别,便在网上找了下,做下记录; 第一种解释: 功能差不多,都用来进行线程控制,他们最大本质的区别是:slee...

dapengking
2013/09/04
899
0
java中sleep与wait方法研究探讨

1.sleep与wait方法的区别 其实最本质的区别的sleep不释放锁,而wait释放锁。示例: Java代码 收藏代码 如果将test1和test2里面的sleep(500)换成wait(500),结果就如下: 2.扩充阅读  Java ...

双月通天
2016/05/30
80
0
sleep和wait有什么区别

第一种解释: 功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩. 还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果...

天王盖地虎626
2018/12/24
27
0
sleep( ) 和 wait( ) 的这 5 个区别,你知道几个?

sleep(休眠) 和 wait(等待) 方法是 Java 多线程中常用的两个方法,它们有什么区别及一些该注意的地方有哪些呢?下面给大家一一分解。 区别1:使用限制 使用 sleep 方法可以让让当前线程休眠,...

Java技术栈
2018/09/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

什么是专用字节,虚拟字节,工作集?

我试图使用perfmon Windows实用程序来调试进程中的内存泄漏。 这就是perfmon解释这些术语的方式: Working Set是此过程的工作集的当前大小(以字节为单位)。 工作集是过程中线程最近触及的一...

技术盛宴
27分钟前
52
0
创建重复N次的单个项目的列表

我想创建一系列长度不一的列表。 每个列表将包含相同的元件e ,重复n次(其中n列表=长度)。 如何创建列表,而不为每个列表使用列表[e for number in xrange(n)] ? #1楼 在Python中创建重复...

javail
43分钟前
64
0
为什么图片反复压缩后普遍会变绿,而不是其他颜色?

作者:Lion Yang 链接:https://www.zhihu.com/question/29355920/answer/119088684 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 业余版概要:安卓的...

shzwork
今天
47
0
每天AC系列(二):最接近的三数之和

1 题目 leetcode第16题,给定一个数组与一个目标数,找出数组中其中的三个数,这三个数的和要与目标数最接近。 2 暴力 按惯例先来一次O(n3)的暴力: int temp = nums[0]+nums[1]+nums[2];fo...

Blueeeeeee
今天
46
0
EFK教程(5) - ES集群开启用户认证

基于ES内置及自定义用户实现kibana和filebeat的认证 作者:“发颠的小狼”,欢迎转载 目录 ▪ 用途 ▪ 关闭服务 ▪ elasticsearch-修改elasticsearch.yml配置 ▪ elasticsearch-开启服务 ▪ ...

小慢哥
今天
58
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部