j2ee是什么,java如何处理高并发问题

j2ee是什么,java如何处理高并发问题 背景标题中含有Java,没办法,用Java语言开发最多,只好如此。文本适合具备【架构师】能力的人阅读,涉及知识较广,相对比较宏观,以后能抽出时间在具体弄弄,总结总结。并发是

背景

标题中含有Java,没办法,用Java语言开发最多,只好如此。文本适合具备【架构师】能力的人阅读,涉及知识较广,相对比较宏观,以后能抽出时间在具体弄弄,总结总结。

并发是什么?

并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

自我理解的概念(通俗一点地理解):

1、并行,就是同时执行,相互不干扰;

2、并发,就是同时执行,由于要占用的资源有冲突,因此同一时刻只能有一个执行;

举例说明:

1、并行,2个队列分别在2窗口办事,无冲突。

2、并发,2个队列同时在1窗口办事,有冲突,来回切换(计算机中的线程,称为上下文切换)。

关于单核和多核CPU的说明:

1、单核CPU同时只能执行一个进程,同一个时刻,各个进程之间你争我抢,最终也只有一个能够成功执行任务,如此不断重复。

2、多核CPU同时可以执行多个进程,宏观上是并行的,微观上是串行的,这是由于OS(操作系统)的调度系统决定的,OS调度系统把运行时间分为一段段的时间片,并依次选择每个进程,最多执行时间片指定的时长。

多线程的相关知识:

1、进程,操作系统的基本执行单元,是一个操作系统正在执行的程序。

2、线程,则是属于进程上的的一个控制单元,也就是一个进程包含了多个线程。

3、锁,提到线程离不开锁,由于并发,都想赶紧执行,某一个时刻只有一个线程获得锁,成功执行。

IO的相关知识:

1、同步(Synchronous),发出一个调用(函数、方法、接口等)时,没有得到结果之前, 该调用不返回。

2、异步(Asynchronous),发出一个调用(函数、方法、接口等)时,调用在发出之后,不管结果直接返回。

3、阻塞( Blocking ),调用结果返回之前,当前线程会被挂起,调用线程只有在得到结果之后才会继续执行,经典的Java IO。

4、非阻塞( Nonblocking),不能立刻得到结果之前,该调用不会阻塞当前线程,Java NIO。

阻塞和非阻塞这两个概念与程序(线程)等待消息通知(无所谓同步或者异步)时的状态有关,也就是说阻塞与非阻塞主要是程序(线程)等待消息通知时的状态角度来说的。

什么时候用到这些东东呢?

1、如web系统,客户端(浏览器)发出请求--

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/33812.html

(0)

相关推荐