JDK源码(十九):Thread
Posted jdkSpring
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK源码(十九):Thread相关的知识,希望对你有一定的参考价值。
进程
线程
类名
public
class Thread implements Runnable
变量
线程创建
1.继承Thread类
public class ThreadDemo extends Thread {
public void run() {
System.out.println("Thread");
}
}
2.实现Runnable接口
public class ThreadDemo implements Runnable {
public void run() {
System.out.println("Runnable");
}
}
3.使用Callable和Future
public class ThreadDemo implements Callable<String> {
public String call() throws Exception {
System.out.println(Thread.currentThread().getName());
return Thread.currentThread().getName();
}
public static void main(String[] args) throws Exception {
Callable<String> callable = new ThreadDemo();
FutureTask<String> ft = new FutureTask<>(callable);
new Thread(ft,"threadName").start();
System.out.println(ft.get());
}
}
线程状态
start()
run
真正启动线程的是start()方法而不是run(),run()和普通的成员方法一样,可以重复使用,但不能启动一个新线程。
sleep()和wait()的区别
当调用sleep方法输出 1001,调用wait方法输出1100。
join
Join()方法,使调用此方法的线程wait(),直到调用此方法的线程对象所在的线程执行完毕后被唤醒。
interrupt
当对一个线程,调用 interrupt() 时,
① 如果线程处于被阻塞状态(例如处于sleep, wait, join 等状态),那么线程将立即退出被阻塞状态,并抛出一个InterruptedException异常。仅此而已。
② 如果线程处于正常活动状态,那么会将该线程的中断标志设置为 true,仅此而已。被设置中断标志的线程将继续正常运行,不受影响。
以上是关于JDK源码(十九):Thread的主要内容,如果未能解决你的问题,请参考以下文章