摘要: 调用yield方法会让当前线程交出CPU权限,让CPU去执行其他的线程。 但是yield不能控制具体的交出CPU的时间,另外,yield方法只能让拥有相同优先级的线程有获取CPU执行时间的机会 (Yield告诉当前正在执行的线程把运行机会交给线程池中拥有相同优先级的线程, cpu会从众多的可执行态里选择.),优先级高的线程业不一定会获得执行权,他们只是概率上大些。该方法不会释放锁。 注意:调用yield方法并不会让线程进入阻塞状态,而是让线程重回就绪状态,它只需要等待重新获取CPU执行时间(也就是说,当前也就是刚刚的那个线程还是有可能会被再次执行到的, 并不是说一定会执行其他线程而该线程在下一次中不会执行到了)。 阅读全文
posted @ 2016-09-07 16:39 小禾点点 阅读(632) 评论(0) 推荐(1) 编辑
摘要: 当前任务(线程)需要使用另一个任务(线程)的执行结果时,这个时候我们要让当前任务(线程)阻塞,等待另一个任务(线程)执行完毕,拿到他的处理结果再继续执行。 当多个线程同时访问临界区(共享资源)时,而该资源已经有线程占用。由于无法获得相关的同步锁,只好进入阻塞状态,等到获得了同步锁,才能恢复运行。 阅读全文
posted @ 2016-09-07 14:36 小禾点点 阅读(726) 评论(0) 推荐(0) 编辑
摘要: cpu在操作物理内存中的数据(读写)速度是很耗时的,我们的计算机为了提高运行效率,我们的计算机cup内核会对数据参数一个高速缓存区,cup会先操作高速缓存区中的数据,然会在某一时刻将高速缓存区中的数据写入到物理内存中。 所以在文件写入时我们不得不提两个方法 close() 与flush(); 阅读全文
posted @ 2016-09-07 11:07 小禾点点 阅读(601) 评论(0) 推荐(0) 编辑