![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 67
weixin_44021967
这个作者很懒,什么都没留下…
展开
-
多线程i++
public class ijiajia { static int j=0; public static void main(String[] args) throws InterruptedException { Thread[] threads = new Thread[10]; for(int i=0;i<10;i++){ threads[i] = new Thread(()->{ sy原创 2021-09-06 00:34:22 · 194 阅读 · 0 评论 -
Java并发编程-wait()/notify()/notifyAll()
1.为什么wait notify notifyAll这三个方法不再Thread类里面,而是属于Object类?Java提供的监视器锁是对象级别的,而不是线程级别的,每个对象都有锁,通过线程获得.由于wait是锁级别的操作,所以把它定义到Object类里面.因为锁属于对象.2.yield方法有什么作用?使当前线程从运行状态变为可运行状态.接着是哪个线程执行,就看系统分配了....原创 2021-08-29 22:43:12 · 80 阅读 · 0 评论 -
Java并发编程-Runnable 接口和 Callable 接口的区别
Runnable 接口 不会返回结果或抛出检查异常,但是 Callable 接口 可以。所以,如果任务不需要返回结果或抛出异常推荐使用 Runnable 接口 ,这样代码看起来会更加简洁。Runnable接口和Callable接口的区别:https://www.cnblogs.com/baichunyu/p/11150762.htmlRunnable接口的run方法的返回值是void,它做的事情只是纯粹的去执行run()方法种的代码而已;Callable接口的call()方法是有返回值的,是一个泛型,和原创 2021-08-25 16:41:32 · 283 阅读 · 0 评论 -
-Java并发编程-由浅入深全面解析ThreadLocal
由浅入深,全面解析ThreadLocal:https://blog.csdn.net/weixin_44050144/article/details/113061884黑马程序员Java基础教程由浅入深全面解析threadlocal:https://www.bilibili.com/video/BV1N741127FH?p=10https://blog.csdn.net/weixin_44050144/article/details/113061884ReentrantLock(重入锁)功能详解和应用转载 2021-08-25 15:48:36 · 125 阅读 · 0 评论 -
Java并发编程-创建线程的四种方式(直接创建、Runnable、Callable、线程池、Future、Runnbable、RunnableFuture、FutureTask的继承关系)
1.继承Thread类2.实现Runnable接口:run方法3.实现Callable接口返回线程结果CallableCallable与Runnable的区别(1)是否具有返回值(2)是否抛出异常(3)4.线程池方式v原创 2021-08-17 21:04:18 · 326 阅读 · 0 评论 -
Java并发编程-并发工具类CountDownLatch、CyclicBarrier、Semaphore、i++
文章目录CountDownLatch作用与使用场景小例子CountDownLatch概念CountDownLatch的用法代码怎么写呢?countDown()应该放在那里呢?JavaGuide关于CountDownLatch的介绍CountDownLatch(倒计时计算器)的两个方法countDown(),await()裁判发令与运动员赛跑(这个例子也太好了)CountDownLatch作用与使用场景小例子CountDownLatch概念https://www.cnblogs.com/Lee_xy_z原创 2021-08-16 22:49:42 · 238 阅读 · 0 评论 -
Java并发编程-AQS(2)
Java并发包基石-AQS详解:https://www.cnblogs.com/chengxiao/archive/2017/07/24/7141160.html原创 2021-08-16 21:55:53 · 84 阅读 · 0 评论 -
Java并发编程-AQS(1)
AQS11分钟视频:(讲的很好)https://www.bilibili.com/video/BV1V7411H7kC?from=search&seid=6448922972558180474554ms原创 2021-08-16 21:54:45 · 56 阅读 · 0 评论 -
Java并发编程-线程池原理,三种线程池、i++、线程池的execute()和submit方法的区别
文章目录三种线程池自定义一个线程池:提交优先级和执行优先级提交优先级拒绝策略:线程池:https://www.bilibili.com/video/BV1YN411o7Lz?from=search&seid=7073118730878150075三种线程池阿里巴巴为什么不推荐Cached:最高 CPU 100%,如果有N个任务,并且任务执行时间比较长,他的队列又只能存放一个任务,那么就会对应着创建N个线程,并且CachedThreadPool允许创建2的32次方-1个线程,就会创建非常多原创 2021-08-16 17:21:26 · 190 阅读 · 0 评论 -
Java并发编程-volatile关键字
1.volatile关键字主要作用就是防止指令重排,以及保证变量的可见性.在Java内存模型JMM中,Java虚拟机规范试图定义一种Java内存模型(JMM),来屏蔽掉各种硬件和操作系统的内存访问差异,让Java程序在各种平台上都能达到一致的内存访问效果。在Java内存模型中,所有变量都存在主内存中,而每个线程又有自己的工作内存(CPU上的寄存器或高速缓存),所有的线程操作都以工作内存为主,并且只可以访问自己的工作内存,工作前后需要把值同步回主内存.这就造成了一个线程在自己的工作内存中修改变量的值,如原创 2021-08-16 15:11:11 · 90 阅读 · 0 评论 -
多线程并发基础
1. 什么是上下文切换?线程在执行过程中会有自己的运行条件和状态(也称上下文),比如上文所说到过的程序计数器,栈信息等。当出现如下情况的时候,线程会从占用 CPU 状态中退出。主动让出 CPU,比如调用了 sleep(), wait() 等。时间片用完,因为操作系统要防止一个线程或者进程长时间占用CPU导致其他线程或者进程饿死。调用了阻塞类型的系统中断,比如请求 IO,线程被阻塞。被终止或结束运行这其中前三种都会发生线程切换,线程切换意味着需要保存当前线程的上下文,留待线程下次占用 CPU 的时原创 2021-08-15 11:46:45 · 63 阅读 · 0 评论