JAVA并发的学习笔记

第一节

          线程池:1.线程池在包java.util.concurrent.Executors

                         2.常用方法 newCachedThreadPool();创建一个根据需要创建新线程的线程池,但是以前的线程可用时将重用他们

                                           newFixedThreadPool(int  sun);创建一个可重用的固定线程数的线程池

                                           newSingleThreadScheduledExecutor();就像 newFixedThreadPool(1)创建单个线程,确保任意时刻任何线程中都只有唯一的任务在运行,

                                           如果向newSingleThreadScheduledExecutor提交了多个任务,那么这些任务将按照提交顺序排队执行。

          ExecutorService(具有服务生命周期的Executor)对象的使用:java.util.concurrent.ExecutorService

                        创建:ExecutorService exec=Executors.newCachedThreadPool();

                        常用方法:1.   exec.execute(new 线程对象);

                                          2.   exec.shutdown(); 启动一次顺序关闭,执行以前提交的任务,阻止新任务进入

                                          3.   exec.submit(线程对象/callablb对象);将 参数对象 提交用于执行,并返回一个表示该任务的Future<>对象

           Callable接口的使用:java.util.concurrent.Callable;

                         Runnable是执行的独立任务,但是他不返回任何值;如果想要任务执行完毕后能有返回值,可以实现Callable接口;由call()方法代替run();

                         Callable是一种具有类型参数的泛型,它的类型参数表示 call()的返回值类型,并且必须使用ExecutorService.submit()调用Callable

                         Future的isDone()  如果任务执行完成,则返回true,get() 得到值



嗨!很高兴回答你关于Java并发编程的问题。请问你想知道什么方面的内容呢?我可以分享一些学习笔记和建议给你。 1. 并发编程基础:了解并发编程的基本概念,如线程、进程、锁、同步等。学习Java中的并发编程模型以及相关的API,如Thread、Runnable、Lock、Condition等。 2. 线程安全性:学习如何保证多线程环境下的数据安全性,了解共享资源的问题以及如何使用同步机制来防止数据竞争和并发问题。 3. 线程间的通信:掌握线程间的通信方式,如使用wait/notify机制、Lock/Condition等来实现线程的协调与通信。 4. 并发容器:学习并发容器的使用,如ConcurrentHashMap、ConcurrentLinkedQueue等。了解它们的实现原理以及在多线程环境下的性能特点。 5. 并发工具类:熟悉Java提供的并发工具类,如CountDownLatch、CyclicBarrier、Semaphore等,它们可以帮助你更方便地实现线程间的协作。 6. 并发编程模式:学习一些常见的并发编程模式,如生产者-消费者模式、读者-写者模式、线程池模式等。了解这些模式的应用场景和实现方式。 7. 性能优化与调试:学习如何分析和调试多线程程序的性能问题,了解一些性能优化的技巧和工具,如使用线程池、减少锁竞争、避免死锁等。 这些只是一些基本的学习笔记和建议,Java并发编程是一个庞大而复杂的领域,需要不断的实践和深入学习才能掌握。希望对你有所帮助!如果你有更具体的问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值