随笔 - 532  文章 - 0  评论 - 3  阅读 - 10867 
1 2 3 4 5 ··· 54 下一页
  2025年3月8日
摘要: 切换当前目录时 使用 workdir CMD CMD 指令就是用于指定默认的容器主进程的启动命令,注意启动的是守护线程,应该注意其特性 阅读全文
posted @ 2025-03-08 00:40 towboat 阅读(4) 评论(0) 推荐(0) 编辑
  2025年3月3日
摘要: VariableLinkedBlockingQueue 实现动态扩展的核心是通过 setCapacity(int) 方法动态调整队列的容量,并在调整容量时确保线程安全和数据一致性。以下是其实现动态扩展的关键机制: 1. 动态调整容量的实现 setCapacity(int capacity) 方法是实 阅读全文
posted @ 2025-03-03 00:31 towboat 阅读(13) 评论(0) 推荐(0) 编辑
  2025年1月15日
摘要: 原子性,可见性,有序性 happens-before 原则6条 管程: 互斥:临界区,共享资源 同步 条件变量,等待队列 关于活锁中的"谦让":比如释放锁 CopyOnWriteList ,所谓写时复制: 1. 读的时候读原数组 2. 写(需加锁):新数组,把原来的所有东西复制过去,然后更改数组引用 阅读全文
posted @ 2025-01-15 22:54 towboat 阅读(2) 评论(0) 推荐(0) 编辑
  2025年1月2日
摘要: 线程池的execute实现逻辑: 向线程池提交一个任务,如果线程数不超过核心线程数,就创建线程,否则加入阻塞队列。这里创建的"线程"是一个包装thread类(通过继承)的类,其中run( ) 是一个循环,不断从阻塞队列中取任务执行 final void runWorker(Worker w) { R 阅读全文
posted @ 2025-01-02 22:05 towboat 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 现在有多个异步任务需要处理,考虑用阻塞队列 给线程池提交任务: 将future结果加入阻塞队列 这样先执行完成的可以先消费 BlockingQueue<Integer> bq = new LinkedBlockingQueue<>(); //电商S1报价异步进入阻塞队列 executor.execu 阅读全文
posted @ 2025-01-02 21:40 towboat 阅读(7) 评论(0) 推荐(0) 编辑
摘要: FutureTask 有future与Runnable的特征 (实现interface) 线程池execute(Runnable) 返回 Future<> future , 可以通过 future.get( ) 获取结果 也可以把FutureTask 提交到线程池执行,然后直接task.get( ) 阅读全文
posted @ 2025-01-02 15:24 towboat 阅读(7) 评论(0) 推荐(0) 编辑
  2024年12月29日
摘要: 以下是一些常见的异步技术及其底层机制: 基于事件循环 机制:通过事件驱动模型(如观察者模式)管理任务,任务会被挂起并在有事件通知时重新调度。 特点:通常在单线程中执行,避免了线程间的切换开销。 例子: Node.js 的事件循环 Python 的 asyncio 库 基于回调 机制:任务完成后通过回 阅读全文
posted @ 2024-12-29 21:28 towboat 阅读(9) 评论(0) 推荐(0) 编辑
  2024年12月17日
摘要: # 使用官方的 Go 编译器镜像作为基础镜像 FROM golang:alpine AS builder # 设置工作目录 WORKDIR /src # 复制 go.mod 和 go.sum 文件到工作目录(确保模块依赖可以被解析) COPY go.mod ./ # 下载依赖项(这一步是可选的,但推 阅读全文
posted @ 2024-12-17 21:39 towboat 阅读(6) 评论(0) 推荐(0) 编辑
  2024年12月14日
摘要: 首先几个 东西 : 环形缓冲区 Arr , 配套的指针 recv , sendx 以下所有操作 均有 lock , unlock write v : 1. 读等待队列(r_wq)有元素,{ 弹出 r_wq 头元素S, 将 v写入S } 2. 可写入 缓冲区 { Arr[ sendx++] = v } 阅读全文
posted @ 2024-12-14 00:34 towboat 阅读(5) 评论(0) 推荐(0) 编辑
  2024年11月24日
摘要: 关于slice https://juejin.cn/post/6844904177022271501 在无缓冲的 Channel 中,发送和接收操作是同步的。 如果一个 Goroutine 向一个无缓冲的 Channel 发送数据,它将一直阻塞,直到另一个 Goroutine 从该 Channel  阅读全文
posted @ 2024-11-24 18:53 towboat 阅读(4) 评论(0) 推荐(0) 编辑
1 2 3 4 5 ··· 54 下一页
点击右上角即可分享
微信分享提示