public static void sleep(long millis);//使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)。

毫秒数结束后线程继续执行

package com.yang.Test.ThreadStudy;

public class Demo01Sleep {
public static void main(String[] args) throws InterruptedException {
//模拟秒表
for (int i = 1; i <=60 ; i++) {
System.out.println(i);
//使用Thread类的sleep方法让程序随眠一秒钟
Thread.sleep(1000);
}
}
}

创建线程的另一种方法是声明实现Runnable接口的类。该类然后实现run方法。然后可以分配该类实例,在创建Thread时作为一个参数来传递并启动。采用这种风格的同一个例子如下所示:

public interface Runnable

Runnable接口应该由那些打算通过某一线程执行其实例的类来试下类必须定义一个称为run的无参放方法

设计该接口的目的是为希望在活动时执行代码的对象提供一个公共协议。例如,Thread类实现了Runnable。激活的意思是说某个线程已经启动并且尚未停止。

此外Runnable为非Thread子类的类提供了一种激活方式。通过实例化某个Thread实例并将自身作为运行目标,就可以运行实现Runnable的类,而无序创建Thread的子类。大多数情况下,如果只想重写run()方法,而不重写其他Thread方法,那么应使用Runnable接口。这很重要

因为除非程序员打算修改或增强类的基本行为,某则不应为该类创建子类

package com.yang.Test.ThreadStudy;

import lombok.SneakyThrows;

public class MyRunnable implements Runnable{

    @SneakyThrows
@Override
public void run() {
for (int i = 0; i <10 ; i++) {
System.out.println(i+Thread.currentThread().getName());
Thread.sleep(1000);
}
}
} class Test{
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
new Thread(myRunnable,"Runnable").start();
}
}

Thread类的常用方法_sleep和创建多线程程序的第二种方式实现Runnable接口的更多相关文章

  1. Thread类的常用方法_sleep和创建多线程程序的第二种方式_实现Runnable接口

    sleep方法是在Thread类中的一个静态方法,当一个线程调用了sleep方法,被调用的那个线程就会暂时的让出指定时间的CPU执行权,在这段时间也不会参与CPU的调度,当时间到了之后,就会重新回到就 ...

  2. 创建多线程程序的第一种方式_创建Thread类的子类

    创建多线程程序的第一种方式:创建Thread类的子类java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类 实现步骤: 1.创建一个Thread类的子类 ...

  3. 主线程和创建多线程程序的第一种方式_创建Thread类的子类

    /** * 主线程:执行主方法的线程(main) * 单线程程序:在java程序中只有一个线程 * 执行从main方法开始,从上倒下依次执行 */ public class Demo01MainThr ...

  4. 多线程-创建线程第二种方式-实现Runnable接口-细节和好处

    1 package multithread2; 2 3 /* 4 * 创建线程的第一种方法:继承Thread类 5 * 6 * 创建线程的第二种方式:实现Runnable接口 7 * 8 * 1,定义 ...

  5. 创建线程的第二种方式------实现Runnable接口的方式

    package cn.itcast.demo16.Demo07.Runnable;/** * @author newcityman * @date 2019/7/22 - 23:17 */public ...

  6. java基础知识回顾之java Thread类--java线程实现常见的两种方式实现Runnable接口(二)

    创建线程的第二中方式: /** *      步骤: 1定义类实现Runnable接口      2.实现Runnable接口中的run方法.      3.通过Thread类建立线程对象,并将Run ...

  7. 创建线程的第三种方式——使用Callable接口

    Callable是类似于Runnable的接口,实现Callable的类和实现Runnable的类都是可被其他线程执行的任务. 优点:有返回值 缺点:实现繁琐 简单实现: CallableAndFut ...

  8. Thread类的常用方法----多线程基础练习

    创建多线程程序的第一种方式----继承Thread类 常用API 构造方法 public Thread() :分配一个新的线程对象. public Thread(String name) :分配一个指 ...

  9. java中创建多线程两种方式以及实现接口的优点

    多线程创建方式有两种 创建线程的第一种方式.继承Thread类 1.继承Thread类 2.重写Thread类中的run方法--目的将自定义代码存储在run方法.让线程执行3.调用线程的start() ...

随机推荐

  1. JS&JQ

    1.css()设置单个或多个值: $(".iconList a").css("width", "32%")--单值:属性和值逗号分隔. $( ...

  2. 微信新菜单类型 article_id 设置教程

    前不久, Senparc.Weixin SDK 跟随微信更新的步伐,上线了新的素材管理接口,其中也涉及到了 article_id 类型的自定义菜单接口. 本文将演示如何使用新的菜单类型. 官方文档传送 ...

  3. selenium模块使用详解、打码平台使用、xpath使用、使用selenium爬取京东商品信息、scrapy框架介绍与安装

    今日内容概要 selenium的使用 打码平台使用 xpath使用 爬取京东商品信息 scrapy 介绍和安装 内容详细 1.selenium模块的使用 # 之前咱们学requests,可以发送htt ...

  4. 项目:PMBok

    美国项目管理协会(PMI)资格认证之所以能在如此广的行业和地域范围内被迅速认可,首先是项目管理本身的重要性和实用性决定的,其次很大程度上是得益于该项认证体系本身的科学性.PMI早在七十年代末就率先提出 ...

  5. C语言复习_01

    auto 存储类是所有局部变量默认的存储类,auto 只能用在函数内,即 auto 只能修饰局部变量. { int mount; auto int month; } register存储类用于定义存储 ...

  6. Yaml中特殊符号"| > |+ |-"的作用

    "|",保留每行尾部的换行符\n. ">",删除每行尾部的换行符\n,则看似多行文本,则在程序中会将其视为一行. include_newlines: | ...

  7. Python模块Ⅰ

    Python模块Ⅰ part1 模块的定义/取别名 自定义模块 什么是模块:模块的本质就是.py文件,封装语句的最小单位 模块中出现的变量,for循环,if结构,函数定义...称为模块成员 模块的运行 ...

  8. [USACO16JAN]Angry Cows G 解题报告

    一图流 参考代码: #include<bits/stdc++.h> #define ll long long #define db double #define filein(a) fre ...

  9. 工具分享:清理 Markdown 中没有引用的图片

    前言: 之前,我写笔记的工具一直都是 notion,而且没有写博客的习惯.但是一是由于 notion 的服务器在国外,有时候很不稳定:二是由于 notion 的分享很不方便,把笔记分享给别人点开链接之 ...

  10. 解决python无法打开谷歌浏览器问题

    python+selenium 打开浏览器网页时可能会出现两种情况, 一.python 初次打开浏览器未进行安装浏览器控制插件, 二.python 能打开浏览器的情况下,突然有一天发现无法打开并报错新 ...