对于 Java 初学者来说,多线程的很多概念听起来就很难理解。比方说:
- 进程,是对运行时程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发。
- 线程,是进程的子任务,是 CPU 调度和分派的基本单位,实现了进程内部的并发。
很抽象,对不对?打个比喻,你在打一把王者(其实我不会玩哈 doge):
- 进程可以比作是你开的这一把游戏
- 线程可以比作是你所选的英雄或者是游戏中的水晶野怪等之类的。
带着这个比喻来理解进程和线程的一些关系,一个进程可以有多个线程就叫多线程。是不是感觉非常好理解了?
进程和线程
1、线程在进程下进行
(单独的英雄角色、野怪、小兵肯定不能运行)
2、进程之间不会相互影响,主线程结束将会导致整个进程结束
(两把游戏之间不会有联系和影响。你的水晶被推掉,你这把游戏就结束了)
3、不同的进程数据很难共享
(两把游戏之间很难有联系,有联系的情况比如上把的敌人这把又匹配到了)
4、同进程下的不同线程之间数据很容易共享
(你开的那一把游戏,你可以看到每个玩家的状态——生死,也可以看到每个玩家的出装等等)
5、进程使用内存地址可以限定使用量
(开的房间模式,决定了你可以设置有多少人进,当房间满了后&#x