发表于: 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。
遇到的问题:没有太大困难
收获:学会了利用打印日志调试。下次要把日志用文件保存。
评论