`
kobe学java
  • 浏览: 258451 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

java并发包,多线程,工具类,笔记

 
阅读更多

 

JDK 线程池 
Executors.newCachedThreadPool(); //带缓存的 不够时自动添加
Executors.newSingleThreadExecutor(); //单个线程池  线程死掉后自动创建
Executors.newFixedThreadPool(10);  //创建容纳N个线程的
Executors.newScheduledThreadPool(19); //创建定时器线程池

executo() 无返回结果
submit()  有返回结果的线程

Callable: //可返还结果的线程

ExecutorService threadpol = Executors.newSingleThreadExecutor();
Future<String> future = threadpol.submit(
    new Callable<String>(){
        public String call(){
            return "aaaa";
        }
    }
    system.out.print(Future.get());
);


Lock lock = new ReentrantLock(); //lock 对象
Condition condition = lock.newCondition(); // 条件. 通讯对象
condition.await(); //不是 object的 wait 
condition.signal(); //唤醒

try{
    lock.lock();
...
}finally{
    lock.unLock();
}

ReentrantReadWriteLock rwl = ReentrantReadWriteLock(); //文件锁
rwl.readLock().lock();
rwl.writeLock().lock();

条件等待尽量使用while(){

}

多线程关键字
Executors.newCachedThreadPool(); //带缓存的 不够时自动添加
Executors.newSingleThreadExecutor(); //单个线程池  死掉后再创建
Executors.newFixedThreadPool(10);  //创建容纳N个线程的
Executors.newScheduledThreadPool(19); //创建定时器线程池
Lock lock = new ReentrantLock(); //lock 互斥锁 对象
Condition condition = lock.newCondition(); // 条件. 通讯对象
Condition        //条件锁
Semaphore         //信号量 类似执行授权 (最多有3个人可以走)
CyclicBarrier     //类似集合点 (必须3个人同时到才能走)
CountDownLatch    //计数器 计时器效果 某时间点同时执行 CountDownLath a = new CountDownLath(1); a.await(); a.countDown();
Exchanger        //数据交换 Exchanger a = new Exchanger()//放主线程; a.exchange("asd")

ArrayBlockingQueue            //阻塞队列  ArrayBlockingQueue 啊 = new ArrayBlockingQueue(); a.put(1);//阻塞 a.add(1);    //a.tack(); 获取

作者“光头的专栏”

分享到:
评论

相关推荐

    Java多线程源码笔记.pdf

    4. lock锁:Lock接口是Java并发包(java.util.concurrent.locks)提供的高级锁,相比synchronized,它提供了更细粒度的锁控制,如可中断锁、可重入锁和公平锁。ReentrantLock是Lock的一个实现,它支持锁的获取和释放...

    JAVA多线程共13页.pdf.zip

    9. **并发工具类**:Java并发包(java.util.concurrent)提供了一系列工具类,如Semaphore信号量控制并发数量,CyclicBarrier同步屏障,CountDownLatch倒计时器等,帮助开发者更高效地管理多线程。 10. **Future和...

    多线程与高并发编程笔记、源码等

    此外,资源可能还包含了对并发工具类(如CountDownLatch、CyclicBarrier、Semaphore等)的讲解,这些工具可以帮助开发者更高效地管理和协调多线程的执行。 至于压缩包中的具体文件,虽然无法直接查看文件名称列表...

    Java并发编程学习笔记

    AQS是Java并发包中的抽象队列同步器,它是ReentrantLock、Semaphore等并发工具的基础,通过维护一个FIFO等待队列来管理线程的等待和唤醒。 9. **CAS(Compare and Swap)**: CAS是一种无锁算法,用于更新变量。...

    Java并发实践-学习笔记

    7. **并发工具类**:`CountDownLatch`, `CyclicBarrier`, `Semaphore`等并发工具类在多线程协作中扮演重要角色,笔记会分析它们的功能和用法。 8. **并发设计模式**:笔记可能还会涉及一些经典的并发设计模式,如...

    java并发笔记,包含线程池

    7. **并发工具类**:`CountDownLatch`、`CyclicBarrier`、`Semaphore`等并发工具类在多线程协同工作时非常有用。例如,`CountDownLatch`可以用来同步多个线程,`CyclicBarrier`允许一组线程等待其他线程到达某个点后...

    java学习笔记.zip

    4. **多线程**:Java提供了丰富的多线程支持,包括Thread类、Runnable接口以及并发包中的工具类。Java 7在并发编程方面也有所增强,例如Fork/Join框架用于并行计算。 5. **字符串处理**:Java 7在字符串处理上增加...

    【学习笔记】JUC基础基础程序

    Java并发包中的Semaphore(信号量)和LockSupport工具类也常用于线程同步。Semaphore可以限制同时访问特定资源的线程数量,而LockSupport提供底层的线程阻塞和唤醒功能,更底层且灵活性更高。 CountDownLatch和...

    Java分布式应用学习笔记06浅谈并发加锁机制分析

    总结来说,Java中的并发加锁机制非常灵活且强大,通过对`ReentrantLock`和`ReentrantReadWriteLock`等工具的理解和应用,可以有效地解决多线程环境下的并发控制问题。希望本文能帮助读者更好地理解和掌握Java并发...

    Java基础笔记(包括底层原理)

    第五章涉及多线程和Java并发包(JUC)。多线程使程序能同时执行多个任务,可以通过继承Thread、实现Runnable或使用ExecutorService来创建。Thread类提供了线程控制方法,如设置优先级、命名和线程礼让。线程的生命...

    JAVA核心知识点整理.zip

    6. **多线程**:Java提供了丰富的多线程支持,包括Thread类、Runnable接口和并发包(java.util.concurrent)。学习如何创建和管理线程,以及同步机制(如synchronized关键字、锁对象和wait/notify机制)是多线程编程...

    JAVA学习笔试(数据基础+泛型编程)-适合小白

    - **多线程**:Java提供了强大的多线程支持,包括Thread类、Runnable接口以及并发包中的工具类,理解线程同步和通信的概念如synchronized关键字和wait/notify机制。 - **IO流**:Java中的输入输出流体系,包括字符...

    Thread基础知识点笔记总结

    CAS 是一种基于硬件级别的指令实现的同步原语,用于.compareAndSwap,是 Java 并发包 java.utile.concurrent 中许多同步类的基础。CAS 的工作原理是首先检查要操作的变量是否是期望的值,如果是,则进行操作,否则不...

    java-source-code:Java源代码学习笔记

    5. **原子(Atomic)**:Java并发包中的Atomic类(如AtomicInteger、AtomicBoolean)提供了原子操作,确保在多线程环境下更新变量时不会出现数据不一致的问题。这些类在高并发场景下特别有用。 6. **锁(Locks)**:...

    笔记-4、显式锁和AQS1

    LockSupport是Java并发包中用于线程控制的工具类,提供如`park()`和`unpark(Thread thread)`等方法。这些方法可以用来暂停和恢复线程的执行,是构建复杂并发控制的基础。 **AbstractQueuedSynchronizer (AQS)** ...

    20.9.24aqs-并发编程笔记.pdf

    然而,在实际应用中,为了避免复杂的同步问题和提高性能,可以考虑使用Java并发包中的高级工具类,如java.util.concurrent包下的Lock、Condition、Semaphore等,这些都是对传统的synchronized和wait/notify机制的...

    尚硅谷大厂面试题第三季周阳主讲

    【描述】提到的重点在于JUC(Java并发包)中的可重入锁概念,以及与之相关的锁机制,如LockSupport工具类的使用。此外,还提到了LockSupport如何实现线程的阻塞和唤醒,以及AbstractQueuedSynchronizer (AQS) 在锁和...

    leetcode下载-SSM-Examples:SSM-示例

    java-snippet,Java学习笔记,包括算法题(leetcode),Java并发包的常见用法,系统设计,Java并法库等 netty-snippet,netty学习笔记 simple-http-server,基于springboot实现的简单文件http服务器,类似于Python一...

Global site tag (gtag.js) - Google Analytics