![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java并发基础
yuanfengqiao
万物皆对象
展开
-
java线程并发基础
1、wait()函数当一个线程调用共享变量的wait()方法时,该线程就会被阻塞挂起,直到发生下面几件事之一才会返回:1、其他线程调用该共享对象的的notify()或者notifyAll()方法;2、其他线程调用该线程的interrupt()方法,该线程抛出InterruptedException()异常返回。需要注意的是一个线程如果要调用wait()方法,则该线程必须事先获得对象的监视器...原创 2019-03-22 18:40:28 · 151 阅读 · 0 评论 -
java并发基础之死锁
1、什么是线程死锁?两个或者两个以上的线程在执行的过程中,因抢夺资源而造成相互等待的现象,在没有外界干扰的情况下,这些线程会一直处于等待状态,例如线程A已经占用了资源1,同时还在申请资源2,线程B已经占用了资源2,但同时还在申请资源1,因此线程A和线程B因相互等对方已占有的资源而处于相互等待而进入死锁状态。2、产生死锁的条件产生死锁有四个跳进:1、互斥条件,即线程对已获得的资源进行排他...原创 2019-03-28 14:17:26 · 172 阅读 · 0 评论 -
Java中的几种线程池
转载自(https://www.cnblogs.com/fengzheng/p/9297602.html)使用线程池的目的就是为了提高性能,线程池和数据库连接池是同样的道理,数据库是为了减少连接的建立和释放带来的性能开销比如说,web开发中,客户端发来一个请求,有两种方式:方式一:服务端就创建一个线程来处理请求,请求完毕后就销毁线程。方式二:每次来一个请求,服务端就从线程池中拿一个...原创 2019-05-24 16:59:10 · 81 阅读 · 0 评论 -
线程阻塞的代价
在看多线程的时候,为了解决多线程下的对数据操作的原子性问题,往往采用synchronized同步锁,但是synchronized是通过加锁来实现的,对于未获得锁的线程,对数据进行读操作时,会被阻塞挂起,阻塞和唤醒是非常消耗资源的,那时候不明白线程阻塞挂起以及唤醒是如何消耗系统资源的,网上大多数是说线程的上下文切换和线程的调度消耗系统资源,还是讲的不够清楚,这几天一直在研究这个问题,今天写一下自己的...原创 2019-09-03 17:22:43 · 758 阅读 · 0 评论