![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程和进程
文章平均质量分 73
巴巴卡奥
嘿,从头开始,还来得及!!!
展开
-
线程-线程池
什么是线程池? 线程池也是实际开发中的一个重要组件并发编程这个里面是希望精益求精。 一开始,多进程。进程的创建销毁,开销太大,于是就引入了线程, 但是创建线程的开销也不小,频繁创建销毁,还是挺难的,于是又发明了一个东西“协程”。但是在协程广泛使用之前,为了解决线程的创建销毁开销,就引入了线程池~ 把一些线程提前创建好,用的时候,直接从池子里面取一个线程就用,用完了也不是直接销毁,而是重新放回到池子里。为什么需要线程池? 在学校附近新开了一家快递店,老板很精明,想到一个与众不同的原创 2021-08-13 12:05:44 · 121 阅读 · 0 评论 -
阻塞队列-消息队列
目录阻塞什么是阻塞?阻塞队列消息队列队列,先进先出~阻塞什么是阻塞?1、这个队列是线程安全的(内部进行了加锁控制)。2、当队列满的时候,往队列里插元素,就会阻塞,,直到队列不满才会进行插入操作。当队列为空的时候,从队列里取出元素,此时也会阻塞。。一直阻塞到队列不为空的时候才完成取元素操作。阻塞队列可以帮我们完成“生产者消费者模型”生产消费者模型:规模稍微大一点的程序,势必会用到生产者消费者模型~~(包饺子模型)一个人擀饺子皮(生产者),多个人包饺子(消费者)。生产者将饺子皮放到一个地方,原创 2021-08-10 12:11:40 · 2014 阅读 · 0 评论 -
单例模式初了解
目录单例模式单例模式的实现单例模式的风格饿汉模式懒汉模式单例模式线程安全问题那么该如何保证线程安全呢?单例模式单例模式是一种设计模式, 所谓设计模式,就像棋谱一样,针对了一些特定的场景,已经产生了对应的解决方案。比如: 我们在学习JDBC的时候创建的一个数据源DataSource就应该是一个单例。 还有,在实际开发中还有一些负责加载数据到内存的类,也应该是单例, 因为这样的类一般有几个G,甚至十几个G,如果不是单例的话,每次运行都要占用大量的内存,单例模式相当于从语法的角度,强制规定原创 2021-08-10 11:09:24 · 85 阅读 · 0 评论 -
如何保证线程的安全?(synchronized)
上篇中我们提到了多线程中可能存在线程不安全的情况发生,那么针对此问题我们应该怎么去解决呢,如下图,如果按照这样的顺序执行线程,必定会造成数据的丢失,也就产生了线程安全问题. 下面介绍一种解决线程安全问题的解决方法,那就是:加锁!!!synchronized 关键字(监视器锁) 他的功能就是,保证了操作的原子性,同时,禁止了指令的重排序和保证了内存的可见性。synchronized的底层是使用操作系统的mutex lock实现的。 在要执行的操作加上synchronized关键字后,再次原创 2021-08-08 15:19:10 · 422 阅读 · 0 评论 -
多线程安全问题
目录线程不安全的原因一个例子明白线程不安全解决线程不安全问题(原子性)总结线程不安全的原因 我们知道,在系统中线程的执行机制是“抢占式”执行的过程,他就是导致我们线程不安全的“万恶之源”,但是呢,这样的执行机制是操作系统的内核自己实现的,程序猿无法干预,所以,这个问题属于环境问题。对于环境问题,我们无法改变,只能学会适应。一个例子明白线程不安全 对于系统中线程不安全的例子:相信大家都有购买过火车票或者高铁票的经历: 小明和小红都想要明天下午西安-北京的高铁,但是通过购票软件查看票只剩下最原创 2021-08-08 11:41:52 · 71 阅读 · 0 评论