概念理解
1.程序:程序是指令和数据的有序集合,其本身没有任何运行的含义,是静态的。
2.进程:是执行程序的一次执行过程,是动态的,是系统资源分配的单位。
3.线程:通常一个进程含有多个线程(至少一个),线程是cpu调度和执行的单位。(多线程是指多个cpu,多核。很多模拟的多线程是同一cpu,同一时间智能执行一个代码但是切换的很快,模拟出多线程的形式)
实现多线程的两种方式:
静态代理方法。
import java.sql.SQLOutput;
public class StaticProxy {
public static void main(String[] args) {
You you=new You();
you.HappyMarry();//正常的你要结婚了,缺点是只能开心,不能后悔(其他操作)
WeddingCompany Wedding=new WeddingCompany(new You());
//若有You you=new You(); ,则new WeddingCompany(you);,两者等同。
Wedding.HappyMarry();
//上面两行还可以简写如下
new WeddingCompany(new You()).HappyMarry();
new Thread(()->System.out.println("我爱你")).start();//实现的Runnable接口
}
}
//静态代理模式:
// 1.真实对象与代理对象都要实现同一接口
// 2.代理对象要代理真实角色
//好处:代理对象可以有其他操作
interface Marry{ //接口
void HappyMarry();
}
//真实角色,你去结婚
class You implements Marry{
@Override
public void HappyMarry() {
System.out.println("开心结婚了");
}
}
//代理角色,婚庆公司
class WeddingCompany implements Marry {
private Marry target;//真实目标角色
//构造方法,传入参数
public WeddingCompany(Marry target) {
this.target = target;
}
@Override
public void HappyMarry() {
before();
this.target.HappyMarry();//真实对象
after();
}
public void before() {
System.out.println("结婚之前");
}
public void after() {
System.out.println("后悔了");
}
}