1.继承thread类
执行结果:
ps:调用的是start方法而不是run方法,在图中可以看到,如果调用run方法,是先执行开辟线程再执行主线程,而start方法是重写开辟一条线程并由CPU调度执行顺序。
1.2 实现多线程同步下载图片
2.实现Runnable接口
2.1买票案例
ps:如果不加Thread.sleep(200),有一定的休眠时间,那么可能票都会被第一个人拿走。
执行结果:
2.2龟兔赛跑案例
执行结果:
3.实现Callable接口
执行结果:
4
4.Lamda表达式
执行结果: