线程的创建和使用
方式一:
方式二: 给主线程重命名
创建线程两种方式的比较
Thread常用方法
通过同步机制解决线程安全问题 方式一:同步代码块:
也分成两类————一种是 Runnable接口线程,另一种是继承 Thread
在继承Thread类创建多线程的方式中,慎用this充当同步监视器,考虑使用当前类充当同步监视器。
方式二:同步方法:方式三:Lock锁方式解决线程安全问题
死锁问题
释放锁的操作
不会释放锁的操作
线程通信
sleep()和wait()的异同
JDK 5.0新增线程创建方式一:实现Callable接口
1.这两个方法来自不同的类分别是Thread和Object
2.最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁)。
3.wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)
JDK 5.0新增线程创建方式二:使用线程池
创建一个实现Callable的实现类
实现call方法,将此线程需要执行的操作声明在call()中
创建Callable接口实现类的对象
将此Callable接口实现类的对象作为传递到FutureTask构造器中,创建FutureTask的对象
将FutureTask的对象作为参数传递到Thread类的构造器中,创建Thread对象,并调用start()
获取Callable中call方法的返回值



