一、基础概念
1.Java中,始终是个多线程环境(原因。存在JVM中的守护线程。所以启动程序就一定是多线程状态)
2.什么是进程和线程
进程是操作系统对资源进行分配的最小单位。这里的资源包含有(CPU,内存,磁盘IO等)。进程之间相互独立。
线程则是cpu调度的最小单位,必须依赖进程而存在。一个进程至少有一个线程。
同一进程中的多条线程共享该进程中的全部系统资源。
3.多核心,多线程中,一般情况下4核CPU拥有4个线程,Inter引入了超线程技术后,核心数:线程数=1:2。
4.现在的内核与逻辑处理器来说比例为1:2,这是由cpu的时间片轮转机制实现的(也称之为RR调度)。
5.并行和并发的区别,并行是同一时刻同时执行,并发,则是交替执行。
例子:并行:两个饮水机,两队人去排队接水,两个队伍是同时接水。
并发:一个饮水机,领队人去排队接水,交替接水
二、高并发编程的意义、好处以及注意事项
1.充分利用了cpu的资源。
2.加快响应用户的时间。
3.可以使我们的代码,模块化,异步化,简单化。
三、创建线程的方法
两种,继承Thread类,实现Runnable接口,关于有的人会反驳的Callable也算,这里我认为Callable和Runnable为同一类,而且,在Thread源码上明确注释有是两种方式。