![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程与并发编程
一杯丶冰美式
No errors,no warning,please
展开
-
多线程基础(一)
线程基础,线程之间的共享和协作时间片轮询?在计算机基础知识里有cpu时间轮转机制 也叫作RR调度,即给每一个进程分配一个时间段,这个时间段为一个进程的生命,在时间段结束后,操作系统就把进程把杀死了。时间片每一次切换都会浪费较多的时间,故应该少切换,减少对程序的影响。进程与线程?在一个进程内部可以有多个线程,多个线程共享一个进程的资源,而进程与进程之间是相互独立的。线程自己不拥有系统...原创 2019-02-09 11:10:34 · 237 阅读 · 0 评论 -
多线程基础(二)
锁机制Syncronized内置锁主要是用来锁对象,锁方法,锁类。对象锁与类锁的区别?类锁锁定的是class对象,class对象在虚拟机里面的,在虚拟机里只有一个而对象锁是new出来的实例,故对象锁于类锁没有任何联系,可以同时进行。对象锁也要保证是否锁住的同一个对象,否则无效。Volatile关键字,最轻量级的线程共享。适用于一个线程写,多个线程读,缺点是无法实现线程的...原创 2019-02-09 17:32:29 · 260 阅读 · 0 评论 -
多线程-线程并发Fork/Join Task(三)
前言:当硬件处理能力不能按照摩尔定律垂直发展的时候,选择了水平发展,多核处理器已经广泛应用。未来随着技术的进一步发展,可能出现成百上千个处理核心,但现有的程序运行在多核心处理器上并不能得到较大性能的提升,主要的瓶颈在于程序本身的并发处理能力不强,不能够合理的利用多核心资源。ForkJoin框架作为线程并发框架,其核心采用了分而治之的思想,其思想将一个大的模块逐步划分为一个又一个小的任务...原创 2019-02-11 20:39:00 · 639 阅读 · 0 评论 -
多线程基础(四)-----ThreadLocal局部线程变量
在本文中,我们首先讲述了为什么要有局部线程变量,然后通过一系列的案例来演示局部线程变量ThreadLocal到底有什么作用。ThreadLocal局部线程变量是什么?ThreadLocal的实例代表了一个线程局部的变量,每条线程都只能看到自己的值,并不会影响到其它线程中也存在的该变量。用于解决多线程并发访问出现的问题。ThreadLocal让线程A与线程B的变量相互隔离,...原创 2019-02-18 11:22:16 · 300 阅读 · 0 评论 -
spring aop使用异步的方式批量处理系统日志
在软件开发的过程中,进行系统日志记录是必不可少的,我利用了Spring aop 自定义注解 面向切面编程 队列 异步 批量处理的方式 完成了我们系统的日志记录,提升了日志记录的性能。首先 :编写自定义注解,使用该注解注解在controller层的方法上,便于后续的aop记录日志。/** * @author 徐塬峰 2019/4/14 * 以自定义注解的方式记录日志 * 注解在方法......原创 2019-05-14 11:43:14 · 3519 阅读 · 2 评论 -
多线程(五)-实战使用并发工具类CyclicBarrier实现并发测试
CyclicBarrier是什么?JDK1.5开始提供的并发编程,辅助工具类。可用于并发编程的。在项目中往往需要使用工具对项目某一个功能或者接口进行并发测试,使用CyclcBarrier工具可以让线程创建后进入队列阻塞,当队列中的数量达到一定数目的时候,同时运行。那么我们再来看jdk源码中对它的解释,如图:如何去使用CyclicBarrier工具类?接下来我们就使用CyclicBa......原创 2019-05-18 14:40:11 · 3581 阅读 · 0 评论 -
多线程(六)实战--手写简单的线程池
1.什么是线程池?为什么用使用它1.降低资源的消耗,在之前做elasticsearch高级客户端的开发的项目中,每一次创建与elasticsearch的连接都会花费不少的时间,大约是1-2秒左右,这样的话,使用elastcisearch这样的分布式搜索服务器就没有必要了。所以可以使用线程池来对连接进行优化,如能把创建好的连接保存在线程池里,每一次需要调用的时候从线程池中取出连接,可以大幅度的节...原创 2019-06-09 15:51:38 · 617 阅读 · 0 评论