多线程(狂神说java)
P1—P5,线程的创建方式
- 继承thread
- runnable接口
- callable接口(了解)
线程不一定立即执行,cpu安排调度
- 继承thread类,重写run方法,调用start开始线程
2. 实现runnable接口,重写run方法,执行时需丢入runnable接口实现类
总结:runnable接口,最后需要传入new Thread()中,等价的代码
P6,初识并发问题
多个线程操作一个对象,例子,多个人买票)
1) 用runnable接口实现,3个线程一共买了10张
但是多个线程操作一个资源,线程不安全,数据紊乱
2)若用继承thread实现,3个线程各自买10张
P7 龟兔赛跑问题
代码:D:\ideaproj\src\daily\Race.java
P10 lambda表达式
函数接口:任何只包含唯一的一个抽象方法的接口
例如
public interface Runnable{
public abstract void run();
}
这种形式,可以通过lambda表达式来创建该接口的对象