多线程
wending-Y
这个作者很懒,什么都没留下…
展开
-
JAVA两个线程交替打印实现
两个方案实现两个线程交替打印原创 2024-05-07 21:39:17 · 341 阅读 · 0 评论 -
如何实现跨线程传递变量
Threadlocal和TransmittableThreadLocal 的使用原创 2024-04-09 21:43:44 · 384 阅读 · 0 评论 -
详解 ThreadLocal
文章目录定义场景示例代码上下文定义从名字上来看,ThreadLocal其实就是给每个线程保存变量用的,每个线程这个变量只有一份。场景线程间的数据隔离变量不是线程安全的,又不想使用加锁的方式来 降低效率,比如SimpleDateFormat数据在不同的层级之间透传,比如从controller,传到service,传到dao层管理连接资源,比如在spring中,事务的实现,一个事务中用的connection都是同一个示例代码上下文public class ContextInfo {原创 2022-01-09 20:56:52 · 310 阅读 · 0 评论 -
线程池原理介绍(图解流程)
线程池在源码中主要实现形式为每一个线程为一个work 以下面代码为例 ExecutorService service = Executors.newFixedThreadPool(5); for (int i = 0; i < 15; i++) { service.submit(new Runnable() { @...原创 2019-01-07 22:49:50 · 558 阅读 · 2 评论 -
thread.join()方法的理解
1。问题由来(这个程序得到的结果是0)package com.haut.thread;/** * @author shuiyu_lei * @date 2017/12/16 */public class AccountingVol implements Runnable { static AccountingVol accountingVol = new AccountingVol()原创 2017-12-16 16:51:26 · 2420 阅读 · 0 评论 -
Future模式简单实现
概述,Future模式是多线程开发中比较常见模式,核心思想是异步调用,思路是执行函数时,马上得到返回结果,但是并不急于处理,而去执行其它业务逻辑,最后再使用比较慢的数据,就不存在无谓的等待,充分利用的所有的时间片段。提高响应速度FutureDatapublic class FutureData implements Data { protected RealData realdata=nu原创 2017-06-06 12:53:46 · 487 阅读 · 0 评论 -
newScheduledThreadPool
这是一个可以根据时间对线程进行调度的线程池,直接看示例public class AddThread implements Runnable{ int sum=0; @Override synchronized public void run() { System.out.println(Thread.currentThread().getName()+":原创 2017-06-04 17:57:25 · 1320 阅读 · 0 评论 -
实现生产者-消费者模式
实现生产者public class Producer extends Thread{ private volatile boolean isRunning=true; private BlockingQueue<PCData> queue; //数据缓存区 private static AtomicInteger count=new AtomicInteger();原创 2017-06-04 17:04:21 · 290 阅读 · 0 评论 -
Synchronized同步静态方法和非静态方法
直接作用于实例方法,相当于给当前对象加锁,进入同步代码前要获得当前实例的锁。这个锁称为对象锁,加锁的对象是当前实例,两个线程使用的是同一个对象public class Syn implements Runnable { static Syn syn=new Syn(); static int i=0; public synchronized void increase(原创 2017-06-02 10:09:12 · 1240 阅读 · 0 评论 -
java多线程信号量
信号量解决了锁一次只能让一个线程访问资源的问题,信号量可以指定多个线程,同时访问一个资源。acquire()方法会尝试获得许可,若无法获得,则继续等待,直到获得许可。访问结束后,释放资源。public class SemapDemo implements Runnable { final Semaphore semp=new Semaphore(5); @Override pu原创 2017-06-06 16:43:32 · 1313 阅读 · 0 评论