Wesley13 Wesley13
4年前
java四种线程池类型以及可选择的阻塞队列
之前笔记有记录java线程池的拒绝策略,回顾一下线程池的处理任务的优先级:先考虑corePoolSize、任务队列(缓冲队列)workQueue、最大线程maximumPoolSize,如果三者都满了,使用handler处理被拒绝的任务。即:如果运行的线程少于corePoolSize,则Executor始终首选添加新的线程,而不进行排队
Stella981 Stella981
4年前
C# Socket
目录目录异步原理主要方法源码Server源码:Client源码实验效果(广播为例)参考博客TOC异步原理套接字编程原理:延续文件作用思想,打开读写关闭的模式。C/S编程模式如下:Ø服务器端:打开通信通道,告诉本地机器,愿意在该通道上接受客户请求——监听,等待客户
Stella981 Stella981
4年前
ReetrantLock源码分析
ReentrantLock类的大部分逻辑,都是其均继承自AQS的内部类Sync实现的啥是AQS:Java并发编程核心在于java.concurrent.util包而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如「等待队列、条件队列、独占获取、共享获取」等,而这个行为的抽象就是基于AbstractQueuedSynchron
Stella981 Stella981
4年前
PythonStudy——线程中的几种消息队列
QueuefromqueueimportQueue,LifoQueue,PriorityQueue队列模块queue类Queue类LifoQueue类PriorityQueue与进程中的JoinableQueue使用方式完全一样
Wesley13 Wesley13
4年前
Java并发编程:AQS的公平性
所谓公平是指所有线程对临界资源申请访问权限的成功率都一样,它不会让某些线程拥有优先权。通过几篇文章的分析我们知道了JDK的AQS的锁是基于CLH锁进行优化的,而其中使用了FIFO队列,也就是说等待队列是一个先进先出的队列。那是否就可以说每条线程获取锁时就是公平的呢?关于公平性,严格来说应该分成三个点来看:入队阶段、唤醒阶段以及闯入策略。友情链接:
Stella981 Stella981
4年前
Linux进程间通信(中)之信号、信号量实践
上节我们分享了Linux进程间通信的其中两种方式:管道、消息队列,文章如下:Linux进程间通信(上)之管道、消息队列实践(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzA3MjMzNTc4NA%3D%3D%26mid
Wesley13 Wesley13
4年前
Java 并发编程:AQS 的公平性
所谓公平是指所有线程对临界资源申请访问权限的成功率都一样,它不会让某些线程拥有优先权。通过几篇文章的分析我们知道了JDK的AQS的锁是基于CLH锁进行优化的,而其中使用了FIFO队列,也就是说等待队列是一个先进先出的队列。那是否就可以说每条线程获取锁时就是公平的呢?关于公平性,严格来说应该分成三个点来看:入队阶段、唤醒阶段以及闯入策略。友情链接:
Wesley13 Wesley13
4年前
Java多线程问题(下)
21、FutureTask是什么这个其实前面有提到过,FutureTask表示一个异步运算的任务。FutureTask里面可以传入一个Callable的具体实现类,可以对这个异步运算的任务的结果进行等待获取、判断是否已经完成、取消任务等操作。当然,由于FutureTask也是Runnable接口的实现类,所以FutureTask也可以放入线程池中
Stella981 Stella981
4年前
Linux等待队列原理与实现
当进程要获取某些资源(例如从网卡读取数据)的时候,但资源并没有准备好(例如网卡还没接收到数据),这时候内核必须切换到其他进程运行,直到资源准备好再唤醒进程。waitqueue(等待队列) 就是内核用于管理等待资源的进程,当某个进程获取的资源没有准备好的时候,可以通过调用 add_wait_queue() 函数把进程添加到 waitqueue
Stella981 Stella981
4年前
Kafka 原理以及分区分配策略剖析
一、简介 ApacheKafka是一个分布式的流处理平台(分布式的基于发布/订阅模式的消息队列【MessageQueue】)。流处理平台有以下3个特性:可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。可以储存流式的记录,并且有较好的容错性。可