一 是什么?

package com.aaa.threaddemo;
/*
* 多线程中的sleep方法?
* sleep 隶属于Thread的方法,顾名思义,让线程睡一会。
1 public static native void sleep(long millis) throws InterruptedException; 使用需要try catch,或者 声明一个异常,才能使用。
2 long 跟的时间单位是秒
3 会让线程进入阻塞状态
4 调用线程会【暂时让出指定时间】的执行权。让出CPU,但是监控状态依然保持着。
5 线程不会释放对象锁。
6 如果在睡眠期间其他线程调用了该线程的interrupt()方法中断了该线程,则该线程会在调用sleep方法的地方抛出InterruptedException异常而返回。
*/
public class ThreadRun {
public static void main(String[] args) throws InterruptedException {
Thread1 thread1 = new Thread1();
thread1.start();
//在thread1 阻塞的情况下,让其中断,会抛出异常 java.lang.InterruptedException
thread1.interrupt();
}
} class Thread1 extends Thread{
@Override
public void run() {
try {
System.out.println("1111");
// 让子线程休息一秒, 在一秒内线程让出CPU,此时thread1 进入阻塞状态。
// 一秒后函数正常返回,参与CPU的调度。获取到CPU资源进入到运行状态。
Thread1.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

二 验证sleep,监控状态依然保持。      原文 https://zhuanlan.zhihu.com/p/259158177

package com.aaa.threaddemo;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock; /*
* 多线程中的sleep方法?
* sleep 隶属于Thread的方法,顾名思义,让线程睡一会。
1 public static native void sleep(long millis) throws InterruptedException; 使用需要try catch,或者 声明一个异常,才能使用。
2 long 跟的时间单位是秒
3 会让线程进入阻塞状态
4 调用线程会【暂时让出指定时间】的执行权。让出CPU,但是监控状态依然保持着。
5 线程不会释放对象锁。
6 如果在睡眠期间其他线程调用了该线程的interrupt()方法中断了该线程,则该线程会在调用sleep方法的地方抛出InterruptedException异常而返回。
*/
public class ThreadRun {
private static ReentrantLock lock = new ReentrantLock(); public static void main(String[] args) throws InterruptedException {
Thread thread1 = new Thread(new Runnable() {
public void run() {
//创建独占锁
lock.lock();
try {
System.out.println("线程1开始睡觉");
Thread.sleep(1000);
System.out.println("线程1结束睡觉"); } catch (InterruptedException e) {
e.printStackTrace();
}finally {
//解除锁
lock.unlock();
}
}
}); Thread thread2 = new Thread(new Runnable() {
public void run() {
//创建独占锁
lock.lock();
try {
System.out.println("线程2开始睡觉");
Thread.sleep(2000);
System.out.println("线程2结束睡觉"); } catch (InterruptedException e) {
e.printStackTrace();
}finally {
lock.unlock();
}
}
}); thread1.start();
thread2.start();
}
}

多线程中sleep方法,简单介绍。的更多相关文章

  1. 使用Memcache在PHP中调试方法的介绍及应用

    使用Memcache在PHP中调试方法的介绍及应用 如果我们在网络开发中,特别是大访问量的web项目开发中,为了提高响应速度,减少数据查询运算,那么我们都会选用memcahce.首先我们必须要安装,接 ...

  2. InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。

    InputStreamReader 和 OutputStreamWriter类使用方法简单介绍. 一.InputStreamReader类 InputStreamReader 将字节流转换为字符流.是 ...

  3. 进程?线程?多线程?同步?异步?守护线程?非守护线程(用户线程)?线程的几种状态?多线程中的方法join()?

    1.进程?线程?多线程? 进程就是正在运行的程序,他是线程的集合. 线程是正在独立运行的一条执行路径. 多线程是为了提高程序的执行效率.2.同步?异步? 同步: 单线程 异步: 多线程 3.守护线程? ...

  4. Java中的wait方法 简单介绍。

    一 wait方法怎么用? package com.aaa.threaddemo; /* * 多线程中的wait方法? public final void wait() throws Interrupt ...

  5. iOS开发多线程篇 09 —NSOperation简单介绍

    iOS开发多线程篇—NSOperation简单介绍 一.NSOperation简介 1.简单说明 NSOperation的作⽤:配合使用NSOperation和NSOperationQueue也能实现 ...

  6. c# 中内部类的简单介绍 C#内部类

    最近在看java一方面的书籍,看到一个很奇怪的问题,java类中还可以再定义一个类,这种结构非常特殊!后来才发现我知识浅薄了,原来C#中也有内部类,之前都一直没有注意过这个语法结构! 使用内部类有这样 ...

  7. AJ学IOS(50)多线程网络之GCD简单介绍(任务,队列)

    AJ分享,必须精品 GCD简单介绍 1.什么是GCD? 全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 纯C语言,提供了非常多强大的函数 2.GCD的优势 GCD是苹果 ...

  8. js中propertyIsEnumerable()方法使用介绍

    javascript的propertyIsEnumerable()方法使用介绍 概述 propertyIsEnumerable()用来检测属性是否属于某个对象的,如果检测到了,返回true,否则fal ...

  9. Java中的equals和==的区别以及几个常用的object中的方法简单的调试方法

    一.equals 1.equals:是Object类中的方法,只能判断引用类型 2.默认判断的是地址是否相等(判断两个参数是否是同一个对象),子类中往往重写该方法,用于判断内容(值)是否相等 二.== ...

随机推荐

  1. 1131 - Just Two Functions

    1131 - Just Two Functions    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...

  2. 《机器学习实战》kNN算法及约会网站代码详解

    使用kNN算法进行分类的原理是:从训练集中选出离待分类点最近的kkk个点,在这kkk个点中所占比重最大的分类即为该点所在的分类.通常kkk不超过202020 kNN算法步骤: 计算数据集中的点与待分类 ...

  3. 分布式(CAP)

    1. Consistency  ------->C---------->一致性[写操作之后的读操作,必须返回该值] 2. Availability-------->A-------- ...

  4. 替代瑞昱RTD2166|pin对pin替代RTD2166|CS5202芯片

    替代瑞昱RTD2166,pin对pin替代RTD2166,外围器件少,设计版框尺寸小,整套方案成本BOM更低. 一. CS5202功能概述  CS5202是一款DP端口到VGA转换器,它结合了DP输入 ...

  5. 每天学一点——python变量、常量与数字类型

    python变量.常量与数字类型 常量 (一句话能概括先讲它) 严格来讲,python中除了π与N就没有不变的量 所以,在python中我们识别常量是看它是否全大写(如下图) 变量 变量,顾名思义,就 ...

  6. Hadoop组件启停命令和服务链接汇总

    1.启停命令 Zookeeper zkServer.sh start zkServer.sh stop/status/restart zkCli.sh -server IP:Port Hadoop(h ...

  7. Eclipse导入Elasticsearch源码

    Eclipse导入Elasticsearch源码的步骤, 基于Elasticsearch 6.2.2的源码版本. 1.安装JDK1.9 Elasticsearch 6.2.2需要JDK1.9编译,否则 ...

  8. Elasticsearch打造全文搜索引擎(二)

    一.Es的文档.索引的CURD操作 1. elasticsearch概念 集群:一个或多个节点组织在一起 节点:一个节点是集群中的一个服务器,有一个名字来标识,默认是一个随机的漫画角色的名字 分片:将 ...

  9. 《剑指offer》面试题57. 和为s的两个数字

    问题描述 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 示例 1: 输入:nums = [2,7,11,15], tar ...

  10. thanos receiver压测结果分享

    压测环境 k8s容器环境 单核 32GB内存 thanos版本:v0.22.0 客户端发送32271959条数据,100个并发:同样的数据文件发送了两遍,取第二遍的性能数据 在thanos recei ...