Java编程语言是一种简单、面向对象、分布式、解释型、健壮安全、与系统无关、可移植、高性能、多线程和动态的语言。如今Java已经广泛应用于各个领域的编程开发。
什么是Java多线程?
进程与线程
进程
当一个程序被运行,就开启了一个进程,比如启动了qq,word
程序由指令和数据组成,指令要运行,数据要加载,指令被cpu加载运行,数据被加载到内存,指令运行时可由cpu调度硬盘、网络等设备
线程
一个进程内可分为多个线程
一个线程就是一个指令流,cpu调度的最小单位,由cpu一条一条执行指令
并行与并发
并发:单核cpu运行多线程时,时间片进行很快的切换。线程轮流执行cpu
并行:多核cpu运行多线程时,真正的在同一时刻运行
Java提供了丰富的api来支持多线程。
为什么用多线程?
多线程能实现的都可以用单线程来完成,那单线程运行的好好的,为什么Java要引入多线程的概念呢?
多线程的好处:
程序运行的更快!快!快!
充分利用cpu资源,目前几乎没有线上的cpu是单核的,发挥多核cpu强大的能力
多线程难在哪里?
单线程只有一条执行线,过程容易理解,可以在大脑中清晰的勾勒出代码的执行流程
多线程却是多条线,而且一般多条线之间有交互,多条线之间需要通信,一般难点有以下几点
1、多线程的执行结果不确定,受到cpu调度的影响
2、多线程的安全问题
3、线程资源宝贵,依赖线程池操作线程,线程池的参数设置问题
4、多线程执行是动态的,同时的,难以追踪过程
5、多线程的底层是操作系统层面的,源码难度大
有时候希望自己变成一个字节穿梭于服务器中,搞清楚来龙去脉,就像无敌破坏王一样(没看过这部电影的可以看下,脑洞大开)。
以上内容由开课吧老师猿小布提供,更多Java教程尽在开课吧广场Java教程频道。