线程的2种实现方式
1)继承Thread类;
2)实现Runnable接口。
几个构造函数:
Thread(String name)
Thread(Runnable target, String name)
这个Runnable也可以传Thread对象,理由是,Thread的定义中,也是实现了Runnable接口。
Thread.currentThread()用来获取当前运行线程,这个线程的名字,可能是Thread-0这样的,而不是想当然认为是类名,而且线程名可设置。
Thread方法的getName总是获取当前调用方的线程名。
System.out.println是线程安全的,但是如果打印的内容包含i--这种非线程安全的操作,也可能导致结果不是预期
"非线程安全":多个线程同时对一个对象的同一个实例变量进行操作时出现值被变更、值不同步的情形。
使用synchronized关键字,使得方法执行,从非线程安全到排队式转变,但是以前听说这个是挺影响性能的。
isAlive方法判断当前线程是否处于活动状态。