黑马程序员——对线程的一些总结
2015-03-27 21:25
218 查看
1.为什么要覆盖run()方法?
Thread类用于描述线程。该类就定义了一个功能,即存储线程要运行的代码,该存储的功能就是由run()方法来实现的。
2.线程的运行状态:
线程被创建,调用start()方法进入运行状态;如果调用sleep(time)或者wait()方法线程进入冻结状态,但依然存在,此时可以试用notify()方法唤醒线程;
当线程运行结束或者调用stop()方法,线程便消亡了。
3.关于多线程的安全问题
解决方式:对多条操作共享数据的语句,只能让一个线程执行完毕之后,在执行过程中其他线程不可参与。
即同比代码块:synchronized(对象){需要同步的代码}
上面的对象其实就是锁,持有锁的线程才可以执行同步代码块中的代码,没有持有锁的的线程即使获取了cpu执行权也进不去,因为没有获得锁对象
同步的前提:有两个或者两个以上的线程
必须多个线程使用同一个锁对象
4.如何看哪些代码需要同步?
明确哪些代码是多线程运行代码
明确哪些是共享数据
明确多线程运行代码中哪些语句操作共享数据
Thread类用于描述线程。该类就定义了一个功能,即存储线程要运行的代码,该存储的功能就是由run()方法来实现的。
2.线程的运行状态:
线程被创建,调用start()方法进入运行状态;如果调用sleep(time)或者wait()方法线程进入冻结状态,但依然存在,此时可以试用notify()方法唤醒线程;
当线程运行结束或者调用stop()方法,线程便消亡了。
3.关于多线程的安全问题
解决方式:对多条操作共享数据的语句,只能让一个线程执行完毕之后,在执行过程中其他线程不可参与。
即同比代码块:synchronized(对象){需要同步的代码}
上面的对象其实就是锁,持有锁的线程才可以执行同步代码块中的代码,没有持有锁的的线程即使获取了cpu执行权也进不去,因为没有获得锁对象
同步的前提:有两个或者两个以上的线程
必须多个线程使用同一个锁对象
4.如何看哪些代码需要同步?
明确哪些代码是多线程运行代码
明确哪些是共享数据
明确多线程运行代码中哪些语句操作共享数据
相关文章推荐
- 黑马程序员--关于线程的一些笔记总结
- 黑马程序员—进程与线程日志总结
- 黑马程序员_线程总结
- 黑马程序员:Java基础总结----线程间通信
- 黑马程序员java学习日记六 线程的学习总结
- 黑马程序员 Java自学总结十一 线程
- COM线程的一些总结【转贴】
- 黑马程序员---线程总结
- 黑马程序员_线程总结
- 黑马程序员——关于线程的总结
- 黑马程序员-- 一些算法总结
- 关于java中线程的一些总结
- 黑马程序员--关于异常的一些笔记总结
- 黑马程序员 一些个人总结的小基础知识点
- 黑马程序员 关于内部类的一些知识总结
- 黑马程序员——多线程(线程安全、线程间通信、1.5中的Lock)总结2
- 黑马程序员--学习IO流的一些总结
- 黑马程序员--关于集合的一些总结
- 黑马程序员-winform视频总结的一些知识点
- 黑马程序员_线程总结2