- 博客(4)
- 资源 (61)
- 收藏
- 关注
原创 多线程的代价
1. 更加复杂的设计访问内存中共享数据的多线程执行的代码需要特别注意,线程同步的错误很难检测、修复。2. 上下文切换损耗当CPU从执行一个线程切换到另一个线程时,CPU需要保存当前线程的本地数据、程序计数器PC等,并加载下一个需要执行的程序的本地数据、程序计数器PC等。这个过程称为“上下文切换”,上下文切换损耗很大,不能经常这样做。3. 资源消耗增大线程需要计算提供一些资源才能运行,除了CPU时间外,还需要内存保存本地堆栈信息,它还可能占用操作系统内部管理线程所需的一些资源。...
2021-03-17 19:41:15 110
原创 多线程的好处
1. 更好地利用CPU想象一个程序读取和处理文件,读取文件需要5秒,处理文件需要2秒,现在我们需要读取并处理2个文件:5秒读取文件A2秒处理文件A5秒读取文件B2秒处理文件B总共需要14秒当从磁盘读取文件时,大多数时间都耗费在从磁盘读取文件个工作上,CPU在这段读取文件时间里十分空闲,它应该去做一些事情。我们通过改变操作顺序,让CPU更好地被利用:5秒读取文件A5秒读取文件B+2秒处理文件A(此处读取文件B时CPU是空闲的,因此可以让CPU处理文件A)2秒处理文件B总共12
2021-03-17 19:32:13 171
原创 Java并发和多线程综述
1. 什么是多线程?多线程意味着在相同的应用中有多个运行着的线程,一个线程像一个独立的CPU运行着你的应用程序。因此,一个多线程应用像一个拥有多个CPU同时运行代码不同部分的应用一样。当然,一个线程不等于一个CPU,通常,一个CPU在多个线程之间共享执行时间,在CPU分配的时间内多个线程来回切换,CPU每次分配很小一段时间给当前线程执行,应用程序的线程也可以交给不同CPU执行。2. 为什么使用多线程?提高单核CPU利用率; 更好地使用多个CPU或者多核CPU; 更好的用户体验和响
2021-03-16 19:11:31 113
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人