一、概念
进程:一个程序就是一个进程;
线程:进程里面最小的执行单元;
二、启动线程
第一种:new Thread().start();
第二种:new Thread(Runnable).start();
第三种:通过线程池可以启动一个新的线程,其实线程池也是用的两种方式之一,Executors.newCachedThreadPool()或者FutureTask+Callable
public class ThreadDemo{
static class MyThread extends Thread {
@Override
public void run() {
System.out.println("Hello MyThread!");
}
}
static class MyRun implements Runnable {
@Override
public void run() {
System.out.println("Hello MyRun!");
}
}
public static void main(String[] args) {
new MyThread().start();
new Thread(new MyRun()).start();
new Thread(()->{
System.out.println("Hello Lambda!");
}).start();
}
}
三、线程的几个方法
Thread.sleep(500);意思是睡眠,当前线程暂停一段时间让给别的线程运行,等睡眠到规定的时间自动复活。
Thread.yield();当前线程正在执行的时候停止下来等待队列,yield的意思就是我让出一下cpu,后面能不能抢到执行权不一定。
Thread.join();在当前线程加入你调用Join的线程。