1.线程有哪几种状态?
操作系统5种:新建 就绪 执行 阻塞 终止
java6种:初始(new) 运行(runnable) 阻塞(blocked) 等待(waiting) 超时等待(timed_waiting,该状态不同于waiting,可以在指定时间后自行返回) 终止(terminated)
2.怎样创建一个线程?
1.继承thread类,调用该类的start方法
2.实现Runnable接口,无返回值
3.实现Callnable接口,有返回值,可捕获异常
4.线程池
3.解决多线程安全?
1.使用synchronized 被synchronized 修饰的方法或者代码块,在任意时刻都只能有一个线程去执行
2.使用lock Lock 需要手动的启动同步 lock(),同时结束同步也需要手动的实现 unlock()
4.线程通信?
wait() notify() notifyAll()