1)线程的实现方法:
实现Runable接口
继承Theradl类
实现Callable接口(这玩意有返回值)
FutureTask 对象的get( )方法获取返回值
(2)synchronized的用法:
修饰一个代码块,被修饰的代码块称为同步代码块,其锁可以进行自定义对象或类.
修饰一个方法,被修饰的方法称为同步方法,其锁为调用的对象.
修饰一个静态的方法,其锁为当前类.
修饰一个类,其锁为当前类.
注意:同步方法不会被继承
(3)启动一个线程是调用run()还是start()方法:
调用start()方法,进行线程的启动,产生新的线程
调用run(),是进行普通方法的调用,并未产生新的线程
原文:https://www.cnblogs.com/KingAndPig/p/14055393.html