发表于: 2018-03-19 00:29:48

1 638


今天完成的事情:利用Lock接口,写了一个线程池。

第一次运行没有效果。利用输出日志的办法。来寻找问题,如图:

 发现任务没有被取走,线程没有真正启动。后来发现是代码中少写了start。修改后正常运行,完整日志如下:


21:08:45,main,启动线程0,

21:08:45,main,启动线程1,

21:08:45,线程0,加锁完成,

21:08:45,main,启动线程2,

21:08:45,线程0,任务容器空,进入等待,

21:08:45,线程2,加锁完成,

21:08:45,线程2,任务容器空,进入等待,

21:08:45,线程1,加锁完成,

21:08:45,线程1,任务容器空,进入等待,

21:08:45,main,加锁完成,添加任务中,

21:08:45,main,任务添加完毕,

21:08:45,main,唤醒等待中的线程们,

21:08:45,main,任务添加完成,解锁!,

21:08:45,main,加锁完成,添加任务中,

21:08:45,main,任务添加完毕,

21:08:45,main,唤醒等待中的线程们,

21:08:45,main,任务添加完成,解锁!,

21:08:45,main,加锁完成,添加任务中,

21:08:45,main,任务添加完毕,

21:08:45,main,唤醒等待中的线程们,

21:08:45,main,任务添加完成,解锁!,

done

21:08:45,线程0,正在等待,

[Recrui.TestThread$1@135fbaa4, Recrui.TestThread$1@45ee12a7, Recrui.TestThread$1@330bedb4]

21:08:45,线程0,被唤醒,

21:08:45,线程0,解锁完成,

21:08:45,线程2,正在等待,

21:08:45,线程0,执行任务,

21:08:45,线程2,被唤醒,

任务0开始执行

21:08:45,线程2,解锁完成,

21:08:45,线程1,正在等待,

21:08:45,线程2,执行任务,

21:08:45,线程1,被唤醒,

任务1开始执行

21:08:45,线程1,解锁完成,

21:08:45,线程1,执行任务,

任务2开始执行

任务0执行完毕

21:08:50,线程0,加锁完成,

21:08:50,线程0,任务容器空,进入等待,

任务1执行完毕

21:08:50,线程2,加锁完成,

21:08:50,线程2,任务容器空,进入等待,

任务2执行完毕

21:08:50,线程1,加锁完成,

21:08:50,线程1,任务容器空,进入等待,




明天计划的事情:使用JDBC。
遇到的问题:没有太大困难
收获:学会了利用打印日志调试。下次要把日志用文件保存。


返回列表 返回列表
评论

    分享到