java中什么是并发?
并发:是指在某个时间段内,多任务交替的执行任务。当有多个线程在操作时,把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行。 在一个时间段的线程代码运行时,其它线程处于挂起状。
简单来说,就是cpu在同一时刻执行多个任务。
Java并发则由多线程实现的。【推荐学习:java课程】
在jvm的世界里,线程就像不相干的平行空间,串行在虚拟机中。(当然这是比较笼统的说法,线程之间是可以交互的,他们也不一定是串行。)
多线程的存在就是压榨cpu,提高程序性能,还能减少一定的设计复杂度(用现实的时间思维设计程序)。
为什么要使用多线程?
先总体上:
从计算机底层来说:线程可以比作是轻量级的进程,是程序执行的最小单元,线程间的切换和调度的成本远远小于进程。另外,多核 CPU 时代意味着多个线程可以同时运行,这减少了线程上下文切换的开销。
从当代互联网发展趋势来说:现在的系统动不动就要求百万级甚至千万级的并发量,而多线程并发编程正式开发高并发系统的基础,利用好多线程机制可以大大提高系统的并发能力以及性能。
再深入到计算机底层:
单核时代:在单核时代多线程主要是为了提高 CPU 和 IO 设备的综合利用率。
多核时代:多核时代主要是为了提高 CPU 的利用率。
使用多线程可能会带来什么问题?
并发编程的目的就是为了能提高程序的执行效率提高程序运行速度,但是并发编程并不总是能提高程序运行速度的,而并发编程可能会遇到很多问题,比如:内存泄漏、上下文切换、死锁等,还有受限于硬件和软件和资源闲置问题。
Atas ialah kandungan terperinci java中什么是并发?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!