![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
猪在黑魔纹里
这个作者很懒,什么都没留下…
展开
-
Java 浅析线程池ThreadPoolExecutor
线程池需要掌握:使用线程池的好处:在《阿里巴巴开发手册》中有提到,不允许使用Executors去创建线程池,而是用更底层的ThreadPoolExecutor创建线程池。—上文提到使用ThreadPoolExecutor创建线程池,我们来看一下ThreadPoolExecutor构造函数的参数:Executors.newSingleThreadExecutor 和 Executors.newFixedThreadPool 实际上就是设置了 corePoolSize 和 maximumPoolSize原创 2022-06-28 16:19:45 · 247 阅读 · 1 评论 -
Java BlockingQueue阻塞队列的四组API
BlockingQueue是FIFO(先进先出)型队列,他很好的解决了多线程中,如何高效安全“传输”数据的问题。本文会介绍BlockingQueue常用的四组api以及他们之间的不同之处。运行结果:add(e)异常:remove( )异常:element( )异常运行结果:运行结果:当队列没有剩余位置可以插入元素,或没有元素可以取出时,会一直阻塞。运行结果:带参数的offer(e, timeout, unit):带参数的poll(timeout, unit):......原创 2022-06-28 12:18:26 · 347 阅读 · 0 评论 -
Java 使用Lock、Condition的生产者与消费者问题(JUC)
synchronized 与 Lock 的区别:说到 Lock 就不得不说 Condition ,官方文档中关于Condition的解释:Lock -> synchronizedCondition.await() -> Object.wait()Condition.signalAll() -> Object.notifyAll();代码实现:通过Condition进行精准的通知和唤醒:结果如下:......原创 2022-06-27 13:59:13 · 337 阅读 · 0 评论 -
Java 传统的生产者与消费问题以及虚假唤醒
synchronize版生产者与消费者问题、多线程虚假唤醒原创 2022-06-27 10:31:35 · 150 阅读 · 0 评论 -
Java TCP实现文件传输
**server端流程:**创建ServerSocket对象,指名端口号。调用accept( )方法,获取客户端socket。创建输入流,用于读取网络数据。创建文件输出流, 将数据输出为文件。创建输出流,发送反馈信息。public void server() throws IOException { try (ServerSocket server = new ServerSocket(9090); Socket socket = server.原创 2022-05-24 10:44:01 · 1842 阅读 · 0 评论 -
Java 多线程之实现Callable
实现Callable为JDK5新增功能,和实现Runnable相比,借助FutureTask类可以实现更加强大的功能,使用起来更加灵活:相比run方法,call方法可以有返回值。方法可以抛出异常。支持泛型的返回值。演示示例:class MyThread implements Callable { @override public Object call() throws Exception { 业务代码 return xxx; }}public static void m原创 2022-04-19 11:17:22 · 1075 阅读 · 0 评论 -
Java 多线程之继承Thread和实现Runnable的区别
继承Tread类 class MyThread extends Thread{ @overwrite public void run(){ 业务流程 }}public static void main(String[] args){ MyThread mt = new MyTread(); mt.start();}实现Runnable接口 class MyThread implements Runnable{ @overwrite原创 2022-04-18 20:16:13 · 417 阅读 · 0 评论