多线程
Posted yangj-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程相关的知识,希望对你有一定的参考价值。
多线程创建
在spring 中还可以注解支持创建
实例如下
1Thread
2Rundable
也可以尝试用lamda表达式的两种写法简化代码
3callable
4 线程池
5spring注解,一个注解就能异步的开线程帮我们操作,从而不用占用主线程(在loginManage类中)
然后想用的时候结合线程池调用就行
然后就是停止线程
1用一个标志
然后就不需要调用stop因为怕线程在执行然后强制停止造成不安全
线程的五种状态
多线程最容易出现的问题就是同步问题,同时执行+i这个值,导致错误或者线程安全
比如我们需要加一个值一般是i++,在多线程里防止出错就加锁
多线程一般的解决方案就是加锁对吧synchronized
如
这样出票就不会错,
,但是再来看看不加锁的情况下CAS,就是比较交换,比较交换
或者用java原子类,也叫无锁
也可以实现递增;
并且效率高 ,为什么要看这些呢,因为不管是synchronized还是volatile,CAS等,底层都是这个指令
以上是关于多线程的主要内容,如果未能解决你的问题,请参考以下文章