摘要: 什么是上下文切换 单核CPU支持多线程执行代码,CPU 通过给每个线程分配CPU 时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU 通过不停地切换线程执行,让我们感觉多个线程同时执行的,时间片一般是几十毫秒(ms)。 CPU通过时间片分配算法来循环执行任务,当前 阅读全文
posted @ 2020-02-08 22:32 九角冰山 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 进程和线程 进程 一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在windows系统中,一个运行的xx.exe就是一个进程。 线程 线程是进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少一个线程,一个进程可以运行很多个线程,多个线 阅读全文
posted @ 2020-02-08 22:26 九角冰山 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 当提到 StringBuffer 和 StringBuilder 时,首先会想到String ,String的值不可变,每次对string 操作都会产生出一个新的对象,然后将指针指向新的对象,而StringBuffer 和StringBuilder 类的对象能够多次被改变而不产生新的对象。 Stri 阅读全文
posted @ 2020-02-08 13:14 九角冰山 阅读(474) 评论(0) 推荐(0) 编辑
摘要: List 是可重复集合,Set是不可重复集合,这两个接口都实现了 Collection 父接口。 Map 未继承 Collection,而独立的接口,Map 是一种把键对象和值对象进行映射的集合,它的每一个元素都包含了一对键对象和值对象,Map中存储的数据是没有顺序的,其 key 是不能重复的,它的 阅读全文
posted @ 2020-02-08 12:52 九角冰山 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 1、什么是竞态条件? 当两个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在竞态条件。 导致竞态条件发生的代码区称作临界区。 在临界区中使用适当的同步就可以避免竞态条件。 临界区实现方法有两种,一种是用synchronized,一种是用Lock显式锁实现。 2、实例: 观察线程A和B交错执行会 阅读全文
posted @ 2020-02-08 10:57 九角冰山 阅读(666) 评论(0) 推荐(0) 编辑