- /*
- 需求:模拟三个老师同时分发80份学习笔记,每个老师相当于一个线程
- 思路:80份学习笔记是共享的,所以需要同步。
- 定义一个类ProvideNotes,实现Runnable接口模拟老师线程
- 成员变量:学习笔记
- 成员方法:发笔记,需要同步,用synchronized修饰
- 覆写run方法循环调用发笔记的方法。
- 测试类中创建ProvideNotes对象,
- 创建3个线程传入ProvideNotes对象
- 调用start方法
-
- */
- class ProvideNotes implements Runnable
- {
- private int notes = 80;
- //private int count = 0;
-
- private synchronized void provideNotes(){
- if(notes>0){
- try{
- Thread.sleep(2);
- }catch(Exception e){
- e.printStackTrace();
- }
- System.out.println(Thread.currentThread().getName() + "发送第"
- + (80- --notes) + "份笔记,还剩下" + notes + "本。" );
- }
-
- }
- public void run(){
- while(true){
- provideNotes();
- }
- }
- }
复制代码 |
|