![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
并发
chenzeyang的博客
这个作者很懒,什么都没留下…
展开
-
FutureTask源码解析
我们在讲源码之前先来一点最基本的应用吧,然后再慢慢的深入。public class FutureExample1 { static class MyCallable implements Callable<String>{ @Override public String call() throws Exception { ...原创 2020-03-17 22:51:35 · 453 阅读 · 0 评论 -
ThreadPoolExecutor源码解析
在Java中,如果每个请求到来我们就创建一个新的线程,创建和销毁线程花费的时间和消耗的系统资源都非常之大,甚至有可能比在处理实际的用户请求所使用的资源还要多。如果在一个jvm里面创建太多的线程,那么可能会使得系统由于过度消耗内存或者频繁切换线程而导致系统资源不足。所以这时有了线程池这个概念,非常好的解决了上面两个问题。另外线程池也提供了许多可调参数和可扩展性接口,以满足不同的情景需求。程序...原创 2020-03-08 14:18:57 · 411 阅读 · 0 评论 -
ThreadLocal
1、为什么有ThreadLocal 多线程并发访问同一个共享变量的时候特别容易出现问题,为了保证线程安全,一般我们都要在访问共享变量的时候进行适当的同步,同步的措施一般就是可以加锁,但是呢加锁的话需要我们使用者对锁有一定的了解,而且加锁的话某一时刻只能有一个线程能够访问到共享变量,其他线程都会被阻塞挂起,影响了性能。那么是否有一种方式可以做到,创建一个变量A之后每个线程都能将其复制...原创 2020-02-09 23:46:25 · 265 阅读 · 0 评论 -
理解多线程join、sleep、yield、interrupt方法
一、join方法 在项目中我...原创 2020-02-05 12:24:33 · 394 阅读 · 0 评论 -
线程创建与运行、通知与等待
一、Java中有三种线程创建方式,分别为实现Runnable接口的run方法,继承Thread类并重写run方法,使用了FutureTask方式。1、Thread:创建完thread对象后该线程并没有被启动执行,直到调用了start方法后才真正启动了线程。其实调用start方法后线程并没有马上启动,而是处于就绪状态,这个就绪状态 是指该线程已经获取了除CPU资源外的其他资源,等待获取CPU资源...原创 2020-02-04 00:31:44 · 231 阅读 · 0 评论 -
什么是线程
1、什么是线程?进程是代码在数据集合上的一次运行活动,是操作系统进行资源分配和调度的基本单位,也就是说一个应用程序就是一个进程,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。同理的多线程存在于一个应用程序中,让一个应用程序中可以有多个执行部分同时运行,但是操作系统不会把多个线程认为是多个应用,它只会对进程进行资源分配和调度。而线程的调度是由进程完成的。也就是操作系统可以同时运行多个...原创 2020-02-02 17:11:31 · 279 阅读 · 0 评论