
Java并发编程
萧曵 丶
谦逊,勤恳.
展开
-
Java多线程编程入门
Java多线程编程入门1. 多线程编程基础1.1 进程、线程1.1.1 进程狭义:进程是正在运行的程序的实例。广义:进程是一个具有一定独立功能的程序,关于某个数据集合的一次运行活动。进程是操作系统动态执行的基本单元,在传统的操作系统中, 进程即是基本的分配单元,也是基本的执行单元。1.1.2 线程线程是操作系统能够进行运算调试的最小单位。它被包含在进程中,是进程中的实际动作单位。一个线程指的是进程中的一个单一顺序的控制流,一个进程中可以并发多个线程,每个线程执行不同的任务。1.1.3 多线原创 2020-06-17 21:57:32 · 503 阅读 · 0 评论 -
你真的了解volatile吗,关于volatile的那些事
很早就接触了volatile,但是并没有特别深入的去研究她,只有一个朦胧的概念,就是觉得用她来解决可见性的,但可见性又是什么呢?最近经过查阅各种资料,并结合自己的思考和实践,对volatile有了比较深刻的认识,在此总结并分享给大家。可见性如何理解可见性,还是来看个会出现死循环的例子:(注意:运行时请加上jvm参数:-server,while循环内不要有标准输出): 这是为什么呢?先来看看jav...转载 2018-04-27 14:29:07 · 180 阅读 · 0 评论 -
轻松学习java可重入锁(ReentrantLock)的实现原理
前言相信学过java的人都知道 synchronized 这个关键词,也知道它用于控制多线程对并发资源的安全访问,兴许,你还用过Lock相关的功能,但你可能从来没有想过java中的锁底层的机制是怎么实现的。如果真是这样,而且你有兴趣了解,今天我将带领你轻松的学习下java中非常重要,也非常基础的可重入锁-ReentrantLock的实现机制。听故事把知识掌握了在一个村子里面,有一口井水,水质非常的...转载 2018-04-27 14:32:35 · 141 阅读 · 0 评论 -
线程的状态
线程的状态 线程被创建时,属于新建状态,调用start后进入就绪状态就绪状态被cpu调用时,进入运行状态运行状态在调用sleep、wait、join后会进入阻塞状态运行状态执行完成后会进入死亡状态,这里包括正常执行完毕和异常执行完毕运行状态在os切换时,线程会进入就绪状态线程wait进入阻塞状态,被调用notify之后,会进入就绪状态线程sleep进入阻塞状态,时间过后会进入就绪状态当前线程的子...转载 2018-04-27 14:33:19 · 134 阅读 · 0 评论 -
Java并发编程:线程池的使用
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以...转载 2018-06-13 15:00:07 · 173 阅读 · 0 评论 -
【Java并发编程】并发编程大合集
【Java并发编程】实现多线程的两种方法【Java并发编程】线程的中断【Java并发编程】正确挂起、恢复、终止线程【Java并发编程】守护线程和线程阻塞【Java并发编程】Volatile关键字(上)【Java并发编程】Volatile关键字(下)【Java并发编程】synchronized关键字【Java并发编程】synchronized的另个一重要作用:内存可见性【Java并发...原创 2018-11-06 23:07:38 · 1049 阅读 · 0 评论 -
threadPoolExecutor 中的 shutdown() 、 shutdownNow() 、 awaitTermination() 的用法和区别
文章目录shutdown()shutdownNow()awaitTermination(long timeOut, TimeUnit unit)shutdown()和shutdownNow()的区别shutdown()和awaitTermination()的区别总结最近在看并发编程,在使用到ThreadPoolExecutor时,对它的三个关闭方法(shutdown()、shutdownNow(...原创 2018-11-19 14:40:53 · 952 阅读 · 0 评论 -
Tomcat高并发配置调优
<Executor name="tomcatThreadPool" # 配置TOMCAT共享线程池,NAME为名称 namePrefix="HTTP-8088-exec-" # 线程的名字前缀,用于标记线程名称 prestartminSpareThreads="true" # executor启动时,是否开启最小原创 2018-11-28 23:13:03 · 486 阅读 · 0 评论