![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java并发编程
文章平均质量分 90
Java线程,多线程;
JUC、线程池、ThreadLocal
Synchronzied、ReentrantLock
lanleihhh
求其上者得其中
展开
-
线程之间如何交换数据?
实现了两个线程之间交换数据交换器类Exchanger没有其他线程与之进行数据交换,超时后抛出异常一个线程开始交换数据后,如果没有其他线程和它交换,就会一直阻塞,直到有线程交换、中断、超时等情况出现。阻塞…中断开启线程数据交换后,中断线程中断线程后,线程停止阻塞,结束运行十个线程之间是如何交换数据的?可以看到10个线程两两之间交换了数据如果9个线程之间交换数据,会发生什么捏?9个线程之间交换数据,有四对线程互换数据了,最后一个线程不参与交换...原创 2022-07-14 15:40:53 · 558 阅读 · 0 评论 -
ThreadLocal详解
线程本地对象,为每个线程提供一个独立的变量,和其他线程是隔离的,互不干涉的。ThreadLocal的简单使用:main线程没有对ThreadLocal变量操作,变量还是默认的0而其他两个线程都对ThreadLocal变量进行了修改但是修改只是线程自身使用的变量发生了变化,没有影响其他线程ThreadLocalMap的结构创建map的方法:get()方法setInitialValue()设置初始值remove()方法ThreadLocal内存泄漏问题为什么会有内存泄漏问题?首先T原创 2022-07-01 12:16:04 · 197 阅读 · 0 评论 -
Java线程
Java线程目录Java线程1、程序、进程、线程2、一般方法与线程3、线程创建2.1继承Thread类2.2实现Runnable接口4、Thread类常用方法4.1 Thread 类构造方法4.2常用方法4.3优先级4.3.1优先级4.3.2调度策略4.3.3优先级静态常量5.线程状态(生命周期)6、线程分类6.1 用户线程与守护线程1、程序、进程、线程程序、进程、线程在主线程中可以创建并启动其他的线程一个进程内的所有线程共享该进程的内存资源2、一般方法与线程main()方法也属于线程(主线原创 2021-06-28 22:29:15 · 106 阅读 · 0 评论 -
Java多线程
Java多线程1.1 概念多线程指的是程序中包含多个不同的执行单元,一个程序中可以允许多个线程执行不同的任务1.2 使用环境程序需要执行两个及以上的任务需要实现一些等待的任务(输入,文件读写,网络,搜索…)需要一些后台运行的程序1.3优缺点优点:提高程序的响应.提高CPU的利用率.改善程序结构,将复杂任务分为对个线程,独立运行.缺点:线程越多占用内存越多多线程需要协调和管理,所以需要CPU时间跟踪线程多个线程之间对共享资源的竞用访问,需要解决这个问题原创 2021-07-04 20:23:23 · 165 阅读 · 0 评论 -
Java高并发-学习笔记 上
并发编程并行与并发多线程多线程优点多线程带来的问题?JMM(Java内存模型)硬件设备之间的速度差异带来的问题?JMMJVM 主内存与工作内存并发编程核心问题--可见性,原子性,有序性可见性缓存不能及时刷新导致了可见性问题。有序性原子性线程切换带来的原子性问题并行与并发单核 cpu 下,线程实际是串行执行的。操作系统中有一个组件叫做任务调度器,将 cpu 的时间片,分给不同的线程使用,只是由于 cpu 在线程间(时间片很短)的切换非常快,人类感觉是同时运行的。 总结为一句话就是:微观串行,宏观并行,原创 2022-06-04 19:49:26 · 139 阅读 · 0 评论 -
并发编程之线程池ThreadPoolExecutor
当前线程数达到maxinumPoolSize时,新的任务会被采用拒绝策略处理构造方法中handler参数是指定拒绝策略AbortPolicy:抛出异常CallerRunsPolicy:线程池未关闭 -> 在调用者线程中运行当前任务(如任务在main线程中,就由main线程去执行)DiscardOlddestPolicy:丢弃等待时间最长的任务DiscardPolicy:直接丢弃,不做处理使用new创建的新对象,将引用指向一个变量,该变量是指向新对象的一个强引用只要强引用对象是可触及的->就原创 2022-06-05 18:52:28 · 261 阅读 · 0 评论