总结-Java多线程与高并发简记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25078673/article/details/80517000

1、什么是多线程?

一个进程可以开启多个线程,每个线程可以并发/并行执行不同任务。

2、Java多线程实现方式

   2.1、继承Thread类

   2.2、实现Runnable接口方式实现多线程

   2.3、使用ExecutorService、Callable、Future实现有返回结果的多线程

3、多线程的优缺点

   优点:提高资源利用率;提升程序执行效率;

   缺点:开启线程会占用一定内存,降低程序性能;线程越多,CPU开销越大

4、线程的状态

  4.1、新建状态(New):线程被创建

  4.2、就绪状态(Runnable):可执行状态,线程对象调用start()启动

  4.3、运行状态(Running):获取CPU进行执行。线程只能从就绪状态到运行状态

  4.4、阻塞状态(Blocked):线程因为某种原因放弃CPU使用权,暂时停止运行。阻塞的三种状态:

         等待阻塞:调用wait()方法

         同步阻塞:获取synchronized同步锁失败

         其他阻塞:调用线程sleep()或join()或发送I/O请求

  4.5、死亡状态(Dead):线程执行结束退出

5、什么是并发

     并发:单个CPU,通过CPU调度算法,处理多个任务的能力

     并行:多个CPU,同时并处理相同的多个任务

6、Java如何实现高并发

     6.1、乐观锁:适用于读不会冲突,写会冲突。同时读的频率远大于写

     6.2、String.intern()字符串池:对用户sessionMap加锁类似于数据库中表锁和行锁

     6.3、ConcurrentHashMap

猜你喜欢

转载自blog.csdn.net/qq_25078673/article/details/80517000