一 是什么?

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. 广告投放效果难判断?集成华为DTM为您轻松实现!

    在进行广告投放时,你是否遇到这样的困扰: 花了一大笔预算去投放推广,不知道实际效果如何? 用户看到投放的广告,产生了哪些有价值的行为? 当前广告投放的渠道和类型等投放策略,是否需要调整? 此时我们就需 ...

  2. 使用VUE CLI3.0搭建项目vue2+scss+element简易版

    1.安装Vue CLI 3 //三选一即可cnpm install -g @vue/cli npm install -g @vue/cli yarn global add @vue/cli 注意: 1 ...

  3. [平台建设] HBase平台建设实践

    背景 由于公司业务场景的需要,我们需要开发HBase平台,主要需要以下功能: 建表管理 授权管理 SDK实现 与公司内部系统打通 我们使用的HBase 版本: HBase 1.2.0-cdh5.16. ...

  4. 涛思数据 TDengine集群搭建

    一.准备 1.设置主机名 hostnamectl set-hostname a.com hostnamectl set-hostname b.com hostnamectl set-hostname ...

  5. Chapter 22 Target Trial Emulation

    目录 22.1 The target trial 22.2 Causal effects in randomized trails 22.3 Causal effects in observation ...

  6. A ROBUST KERNEL PCA ALGORITHM

    目录 引 主要内容 问题一 问题二 Lu C, Zhang T, Du X, et al. A robust kernel PCA algorithm[C]. international confer ...

  7. Rank & Sort Loss for Object Detection and Instance Segmentation 论文解读(含核心源码详解)

    第一印象 Rank & Sort Loss for Object Detection and Instance Segmentation 这篇文章算是我读的 detection 文章里面比较难 ...

  8. EMQX源码编译过程

    以emqx4.0.7版本为例 1.安装erlang环境 可以参考:https://www.cnblogs.com/shanfeng1000/p/11951703.html 这里需要注意一下,要按照em ...

  9. Storm对DRPC权限控制Version1.0.1

    对Storm的DRPC进行权限控制, 并且设计相应的测试验证. 1.集群安装 请参考Storm集群安装Version1.0.1 2.使用DRPC功能 请参考Storm集群使用DRPC功能Version ...

  10. Jenkins安装、配置与说明

    Jenkins是一个开源的.提供友好操作界面的持续集成(CI)工具,主要用于持续.自动的构建/测试软件项目.监控外部任务的运行. 这么解释很抽象,举个例子,我们开发完一个功能,我们要将项目发布打包好, ...