1.5 sleep()方法

方法sleep()的作用是在指定的毫秒数内让当前"正在执行的线程"休眠(暂停执行)。这个“正在执行的线程”是指this.currentThread()返回的线程。

注:this.currentThread()在IDE中报错,提示使用类名调用静态方法,但实际并不影响运行。

线程代码:

public class Thread1 extends Thread {
    @Override
    public void run() {
        try {
            System.out.println("run threadName = " + this.currentThread().getName() + " begin");
            Thread.sleep(2000);
            System.out.println("run threadName = " + this.currentThread().getName() + " end");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

执行代码:

public class Main {
    public static void main(String[] args) {
        Thread1 t1 = new Thread1();
        System.out.println("begin = " + System.currentTimeMillis());
        t1.run();
        System.out.println("end = " + System.currentTimeMillis());
    }
}

执行结果:

创建线程代码2:

public class Thread2 extends Thread {
    @Override
    public void run() {
        try {
            System.out.println("run threadName = " + this.currentThread().getName() + " begin =" +System.currentTimeMillis());
            Thread.sleep(2000);
            System.out.println("run threadName = " + this.currentThread().getName() + " end =" +System.currentTimeMillis());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

创建执行代码:

public class Main {
    public static void main(String[] args) {
        Thread2 t2 = new Thread2();
        System.out.println("begin = " + System.currentTimeMillis());
        t2.start();
        System.out.println("end = " + System.currentTimeMillis());
    }
}

执行结果:

注:main与Thread2线程是异步执行的,所以先打印出begin与end,然后再打印run begin与run end

源码地址:https://github.com/lilinzhiyu/threadLearning

本文内容是书中内容兼具自己的个人看法所成。可能在个人看法上会有诸多问题(毕竟知识量有限,导致认知也有限),如果读者觉得有问题请大胆提出,我们可以相互交流、相互学习,欢迎你们的到来,心成意足,等待您的评价。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏专注数据中心高性能网络技术研发

[Effective Modern C++(11&14)]Chapter 7: The Concurrency API

1925
来自专栏Web项目聚集地

通俗易懂讲解Java线程安全

一个非科班的技术男,自学半年找到了份不错的程序员工作,运营维护订阅号「一个程序员的成长」希望做一个专注于Java领域的公众号,喜欢本文章可以搜索关注。

792
来自专栏微信公众号:Java团长

Java线程的5个使用技巧

萝卜白菜各有所爱。像我就喜欢Java。学无止境,这也是我喜欢它的一个原因。日常工作中你所用到的工具,通常都有些你从来没有了解过的东西,比方说某个方法或者是一些有...

622
来自专栏好好学java的技术栈

学多线程的看过来,带你学习多线程中断机制

当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时……都需要通过一个线程去取消另一个线程正在执行的任务。Jav...

743
来自专栏Java学习网

Java 并发包中的读写锁及其实现分析

Java 并发包中的读写锁及其实现分析 1. 前言 在Java并发包中常用的锁(如:ReentrantLock),基本上都是排他锁,这些锁在同一时刻只允许一个线...

3034
来自专栏python学习路

八、线程和进程 什么是线程(thread)?什么是进程(process)? 线程和进程的区别?Python GIL(Global Interpreter Lock)全局解释器锁

什么是线程(thread)? 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一...

3567
来自专栏iOS Developer

Bison眼中的iOS开发多线程是这样的(一)

1185
来自专栏Android学习之路

Android中的线程

20314
来自专栏Java面试通关手册

Java多线程学习(四)等待/通知(wait/notify)机制

我自己总结的Java学习的系统知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star: https://github.com/Snailc...

1293
来自专栏Golang语言社区

Golang语言社区--【游戏服务器知识】多线程并发

引言:上篇文章说到了多进程并发式的服务端模型,如上一篇文章所述,进程的频繁创建会导致服务器不堪负载,那这一篇博客主要讲述的是线程模型和线程池的方式来提高服务端的...

3054

扫码关注云+社区