多线程编程的目的,就是"最大限度地利用CPU资源",当某一线程的处理不需要占用CPU而只和I/O,OEMBIOS等资源打交道时,让需要占用CPU资源的其它线程有机会获得CPU资源。
2017-11-19
确实有些关键的点并没有进行说明,不过还是感谢老师。调用start()方法时,会自动调用run方法,如果使用Runnable接口创建线程,那么就得重写run(),因为此方法是Runnable接口的唯一方法。
2017-11-08
关于volatile修饰的退出标志keepRunning正确退出进程的流程
1.军队进程每次进攻完 执行yield方法 释放处理器资源
2.当stage进程在获取到军队进程释放的资源,执行到设置keepRuning=false语句之后,调用sleep方法使得stage进程进入休眠状态(此时stage进程不再参与资源竞争,保证军队进程可以竞争到处理器资源)
3.军队进程获取到资源,且停战标志keepRunning被之前的stage进程设置为false
4.军队进程此时根据上下文环境将run方法内剩余语句执行完,(for循环内的进攻语句接着上一次标志进攻次数的i变量执行)
5.军队进程正确结束
1.军队进程每次进攻完 执行yield方法 释放处理器资源
2.当stage进程在获取到军队进程释放的资源,执行到设置keepRuning=false语句之后,调用sleep方法使得stage进程进入休眠状态(此时stage进程不再参与资源竞争,保证军队进程可以竞争到处理器资源)
3.军队进程获取到资源,且停战标志keepRunning被之前的stage进程设置为false
4.军队进程此时根据上下文环境将run方法内剩余语句执行完,(for循环内的进攻语句接着上一次标志进攻次数的i变量执行)
5.军队进程正确结束
2017-11-01