本文介绍的传统线程的回顾
是Java1.5之前回顾,你可以选择跳过。
Thread类即线程类
一线程的创建
1.1通过new Thread写出子类重写run方法
Thread thread = new Thread(){
public void run(){System.out.println("")};
};
thread.start();
即可运行thread里面的run()方法,,
1.2通过底层代码可看到,Runnable的赋值是Thread的init()方法,
所以一般传统方式创建线程方式是实现Runnable方法:
Thread thread = new Thread(new Runnable(){
public void run(){
System.out.println()
};
};
thread.start();
为何更多是是使用实现Runnable的方式,找过资料,个人感觉靠谱的解释是单一职责原则。
二是传统的定时器
Timer类,
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("aaa");
}
},10*1000,1000);
定时器选择schedule或者quartz
三是传统线程的互斥
关于线程安全,使用synchronized,代码块里使用synchronized(两个线程的同一个对象,就是一把锁){代码块},
或者在方法上使用synchronized,这使得整个方法都受到synchronized的阻塞,保护的是这个方法对象;
四是传统线程的通信问题
传统线程的线程通信使用的是wait和notify,等待和唤醒
不做过多介绍。