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++)…
sleep方法是在Thread类中的一个静态方法,当一个线程调用了sleep方法,被调用的那个线程就会暂时的让出指定时间的CPU执行权,在这段时间也不会参与CPU的调度,当时间到了之后,就会重新回到就绪状态,等待CPU的再次调度,注意是就绪状态,而不是重新拿回CPU的执行权.并且,在休眠期间,只是会让出CPU的执行权,但是之前获得的锁资源,还是继续持有,等CPU调度到该线程重新获取到执行权的时候,就会继续运行sleep之后的代码.接下来用一个例子来说明Sleep期间不会放弃锁资源 public…
创建多线程程序的第一种方式:创建Thread类的子类java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类 实现步骤: 1.创建一个Thread类的子类 2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么) 3.创建Thread类的子类对象 4.调用Thread类中的方法start方法,开启新的线程,执行run方法 void start()使该线程开始执行;Java虚拟机调用该线程的run方法. 结果是两个线…
/** * 主线程:执行主方法的线程(main) * 单线程程序:在java程序中只有一个线程 * 执行从main方法开始,从上倒下依次执行 */ public class Demo01MainThread { public static void main(String[] args) { Person p1 = new Person("小强"); p1.run(); Person p2 = new Person("旺财"); p2.run(); } } 创建线程…
1 package multithread2; 2 3 /* 4 * 创建线程的第一种方法:继承Thread类 5 * 6 * 创建线程的第二种方式:实现Runnable接口 7 * 8 * 1,定义类实现Runnable接口. 9 * 2,覆盖接口中的run方法,将线程的任务代码封装到run方法中. 10 * 3,通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数的参数进行传递. 11 * 为什么?因为线程的任务都封装在Runnable接口子类对象的…
package cn.itcast.demo16.Demo07.Runnable;/** * @author newcityman * @date 2019/7/22 - 23:17 */public class RunnableImpl implements Runnable { @Override public void run() { for (int i = 0; i <20 ; i++) { System.out.println(Thread.currentThread().getNa…
创建线程的第二中方式: /** *      步骤: 1定义类实现Runnable接口      2.实现Runnable接口中的run方法.      3.通过Thread类建立线程对象,并将Runnable 接口的子类对象作为实际参数传给Thread类的构造方法.      4.调用Thread类的start方法开启线程,并调用Runnable接口子类的run方法      为什么要将Runnable接口子类的对象传递给Thread类的构造方法?      因为线程的任务(要运行的代码)都封…
Callable是类似于Runnable的接口,实现Callable的类和实现Runnable的类都是可被其他线程执行的任务. 优点:有返回值 缺点:实现繁琐 简单实现: CallableAndFuture.java /** * 简单实现 * * @author :liuqi * @date :2018-06-13 11:10. */ public class CallableAndFuture { static class MyThread implements Callable<String…
创建多线程程序的第一种方式----继承Thread类 常用API 构造方法 public Thread() :分配一个新的线程对象. public Thread(String name) :分配一个指定名字的新的线程对象. public Thread(Runnable target) :分配一个带有指定目标新的线程对象. public Thread(Runnable target,String name) :分配一个带有指定目标新的线程对象并指定名字. 常用方法 public String ge…
多线程创建方式有两种 创建线程的第一种方式.继承Thread类 1.继承Thread类 2.重写Thread类中的run方法--目的将自定义代码存储在run方法.让线程执行3.调用线程的start()方法改方法有两个作用1启动线程 2让jvm调用run方法执行线程任务 创建线程的第二种方式.实现Runnable接口.1,定义类实现Runnable接口:避免了继承Thread类的单继承局限性.2,覆盖接口中的run方法.将线程任务代码定义到run方法中.3,创建Thread类的对象:只有创建Thr…