就以毕老师视频里的拉煤问题,帮我理一下思路,先可不看我的,把你思路写出来看看,再对比我的
我是一下午都反复看day12_01这里面讲的线程通信问题,老整不明白,可能是思路还理不清,所以请大家帮个小忙
也可以就这个拉煤的例子,结合思路理顺一下
思路:1、先存才能拉出
2、什么时候才存?煤堆没有煤了,才存煤,有煤就不能存,此时该取煤
3、煤堆无煤的时候不能取煤,只能存煤
4、结合2,3,设定一个旗标表示煤堆有煤无煤
5、煤堆是共享数据,该封装对象,而调用该对象的是多个线程,所以对象所属类应该实现Runnabale接口
但是每个线程操作不一样,所以不用实现Runnable接口
6、拉煤和取煤操作不一样,即对应不同run方法,所以分别封装成两个继承Thread的子类
7、同步处理共享数据的安全问题 |