java多线程学习三

本章主要学习线程的静态方法

1、先忙先看一段代码:

public class MyThread3 implements Runnable {

    static {
        System.out.println("static方法打印:"+Thread.currentThread().getName());
    }

    public MyThread3(){
        System.out.println("购置方法打印:"+Thread.currentThread().getName());
    }

    @Override
    public void run() {
        System.out.println("run方法打印:"+Thread.currentThread().getName());
    }
}

运行结果:

static方法打印:main
购置方法打印:main
run方法打印:Thread-0

以上可以看出:线程类的构造方法、静态块是被main线程调用的,而线程类的run()方法才是应用线程自己调用的。

2、sleep()

sleep(long millis)方法的作用是在指定的毫秒内让当前"正在执行的线程"休眠(暂停执行)。这个"正在执行的线程"是关键,指的是Thread.currentThread()返回的线程。根据JDK API的说法,"该线程不丢失任何监视器的所属权",简单说就是sleep代码上下文如果被加锁了,锁依然在,但是CPU资源会让出给其他线程。

3、wait()使线程停止运行,notify()使停止运行的线程继续运行

原文地址:https://www.cnblogs.com/bestxyl/p/8709923.html