java多线程
monkey-jie
这个作者很懒,什么都没留下…
展开
-
Java中的锁事
Java的锁Java根据不同的特性来对锁进行分类,大概有以下分类方式。这里主要讨论乐观锁和悲观锁以及在Java中对应的实现。悲观锁 VS 乐观锁对于同一个数据的并发操作,悲观锁认为自己在使用数据时,一定会有其它线程来修改数据,所以在每次操作数据前都会加上一个锁,以确保没有其它线程来修改数据。Java中的synchronized锁和lock锁都是悲观锁。而乐观锁每次都认为不会有其它线程来...原创 2019-12-01 22:33:04 · 261 阅读 · 0 评论 -
多线程中的synchronized同步方法详解
1、内部私有变量线程安全“非线程安全”的问题出现在实例变量中,而在方法的内部的私有变量使不存在“非线程安全问题”的,永远都是线程安全的。这是方法内部的变量使私有的特性造成的。2、实例变量“非线程安全”如果多个线程一起访问一个对象中的实例变量,就可能会出现“非线程安全”的问题,如果访问的对象中有多个实例变量,则很可能会出现运行结果交叉的问题。下面看个例子:写个仿servlet类:pack...原创 2019-04-05 14:29:53 · 417 阅读 · 0 评论 -
ReentrantLock实现多线程交替打印奇偶数
关于ReentrantLock的实现原理,详见这篇:https://github.com/crossoverJie/JCSprout/blob/master/MD/ReentrantLock.md用ReentrantLock实现交替打印奇偶数,就是开两个线程,一个打印奇数,一个用于打印偶数。为什么要用ReentrantLock呢,因为这里交替打印(线程交替执行),需要对共享变量flag进行反复...原创 2019-04-29 15:28:31 · 2012 阅读 · 0 评论 -
多线程精准计算java代码量
今天在看某大佬的博客时,看到了一个多线程的实例。就是计算一个hexo博客的总字数。它的思路就是扫描hexo博客文章目录下的全部文件,然后利用多线程读取所有文件内容并处理文本(去掉特殊字符)然后计算总字数。我把它的项目代码练了一遍,然后就想自己再玩一下。我这里计算的是一个java项目中java代码的行数(总行数,代码行数,空行数,注释行数)这里计算用的是AtomicLong,这是个线程安全的原...原创 2019-04-29 22:03:47 · 277 阅读 · 0 评论 -
synchronized同步代码块
同步代码块有以下三种用法。synchronized(this) 锁当前类的对象。synchronized(X)锁非this对象Xsynchronized(class)锁当前类(所有该类的实例对象都将同步)1、synchronized(this)这个与synchronized是类似的,也是锁住当前对象的。两种作用。1)对同一对象的其他synchronized同步方法或者synchr...原创 2019-05-22 13:03:50 · 1055 阅读 · 0 评论 -
Java线程池ThreadPoolExecutor(1)了解
一、使用线程池的好处:降低资源消耗可以重复利用已创建的线程来降低创建和销毁线程的消耗。提高响应速度当任务到达时,可以不需要等待线程创建就能执行任务提高线程的可管理性线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控二、ThreadPoolExecutor构造函数详解public ThreadPoolEx...原创 2019-06-22 14:05:08 · 209 阅读 · 0 评论 -
java线程池基础
线程池的基础架构图:ExecutorExecutor,任务的执行者,线程池框架中几乎所有类都直接或者间接实现Executor接口,它是线程池框架的基础。Executor提供了一种将“任务提交”与“任务执行”分离开来的机制,它仅提供了一个Execute()方法用来执行已经提交的Runnable任务。public interface Executor { void execute(Ru...原创 2019-06-23 16:29:57 · 146 阅读 · 0 评论 -
Java线程池ThreadPoolExecutor(2)三种线程池
1、FixedThreadPool可重用固定的线程数的线程池,构造函数如下:public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads, ...原创 2019-06-28 12:06:53 · 275 阅读 · 0 评论