两种方式创建线程 继承 Thread类和实现Runnable接口
后一种方法创建线程需要多一个步骤,将Runnable的实现类的对象作为参数创建Thread类的对象
class Argument implement Runnable{
成员。。。。。。
@Override
public void run(){
}
}
public class Main{
public static void main(String[] args){
Argument ar = new Argument();
Thread t = new Thread(ar);//传入同一个Runnable的实现类的对象将会共享该对象的成员
t.start();
}
}
同步代码块
synchronized(lock){
}
同步锁”lock“ 可以时任何对象
同步方法
访问修饰符 synchronized 返回值 方法名 (…)
同步锁时 调用该方法的对象 this
静态方法的同步锁是 类名.class
wait()、notify()、notifyAll() 是Object类的方法分别用于让当前进程放弃同步锁进入等待、唤醒此同步锁上第一个调用wait的进程、唤醒此同步锁上所有调用wait的进程
在线程start之前可以使用setDaemon()方法使线程进入后台进程(线程默认是前台进程),isDaemon()查看当前进程是否是后台进程。