多线程

Posted yangj-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程相关的知识,希望对你有一定的参考价值。

多线程创建

技术图片

 

 在spring 中还可以注解支持创建

技术图片

 

 实例如下

1Thread

技术图片

 

 2Rundable

也可以尝试用lamda表达式的两种写法简化代码

技术图片

 

 3callable

技术图片

 

 4 线程池

技术图片

 

 5spring注解,一个注解就能异步的开线程帮我们操作,从而不用占用主线程(在loginManage类中)

技术图片

 

技术图片

 

 

 然后想用的时候结合线程池调用就行

技术图片

 

 然后就是停止线程

1用一个标志

技术图片

 

 然后就不需要调用stop因为怕线程在执行然后强制停止造成不安全

技术图片

 

 线程的五种状态

技术图片

 

 

多线程最容易出现的问题就是同步问题,同时执行+i这个值,导致错误或者线程安全

比如我们需要加一个值一般是i++,在多线程里防止出错就加锁

多线程一般的解决方案就是加锁对吧synchronized

技术图片

 

 这样出票就不会错,

,但是再来看看不加锁的情况下CAS,就是比较交换,比较交换

技术图片

 

 或者用java原子类,也叫无锁

技术图片

 

 也可以实现递增;

技术图片

 

 并且效率高 ,为什么要看这些呢,因为不管是synchronized还是volatile,CAS等,底层都是这个指令

技术图片

 

以上是关于多线程的主要内容,如果未能解决你的问题,请参考以下文章

什么是多线程,多进程?

多线程和多进程模式有啥区别

多线程Java多线程学习笔记 | 多线程基础知识

java中啥叫做线程?啥叫多线程?多线程的特点是啥

c++ 多线程与c多线程有啥区别?

IOS多线程安全(线程锁)