java多线程

1.为什么要重新Thread

因为Thread的run()方法是空的,如果需要执行自己的内容,需要继承Thread然后重写run方法

2.为什么新线程调用run不能开启多线程

因为多线程启动是使用start()方法开启的,而不是使用run()方法。

通过getCurrentThread().getName()可以得知调用run()方法是单线程执行的。

3.线程状态图

image

4.使用Runnable创建线程的好处

1>.让实现类的任务抽象出来,2>.让对象可以实现非线程类的继承。

5.线程安全的问题产生和问题解决

1>.产生的原因是 多线程在操作共享的数据,操作共享数据的代码有多条。

2>.使用synchronized来解决。加锁一定得使用成员变量,不能使用局部变量(可以从堆栈的角度理解)

posted @ 2016-12-11 15:02 haiziguo 阅读(...) 评论(...) 编辑 收藏