创建线程:
1)定义类继承Thread
public Class SubThread extends Thread
2)重写 run();方法
@Override
public void run(){
for(int i =0; i<100;i++){
system.ont.println(i)
}
}
3)创建线程对象
Thead t = new SubThead();对象自动向上转型
3)开启线程
t.start();
当前是main 线程
for (int i = 0; i < 100; i++) {
System.out.println("main ==> " + i);
}
注意:
1)运行程序后, main线程与t线程并发执行。 如果同学们运行后没有并发执行,可以把两个线程的循环次数调整到10000次或者更多
2) start()仅仅是通知线程调度器当前线程准备就绪,start()方法调用的先后顺序并不一定就是线程开启的先后顺序
3) 线程执行是随机的,每次运行结果可能不一样
锁的思路:
把线程对共享数据的并发操作改为串行,即不让线程同时操作共享数据
开始是并发的到操作共享数据时候不让并发,