最新文章列表

Semaphore线程并发

Semaphore 信号量-多线程:限制线程并发的数量 //过独木桥 public class GBridge { private Semaphore sem = new Semaphore(1); //只有一个线程能调用该方法 public void come(){ try{ sem.acquire(); System.out.println(Thread.curre ...
zw7534313 评论(0) 有797人浏览 2019-02-27 16:00

为什么单线程Redis性能也很出色

高性能的服务器,不一定是多线程实现的,也就是说多线程不一定比单线程效率高,这得分具体的情况。以redis为例,核心处理请求的线程只有一个,所 ...
qindongliang1922 评论(0) 有2204人浏览 2019-01-21 18:02

CyclicBarrier 源码分析

简介: CyclicBarrier 实现这么一个功能,比如说吃饭,是不是要等所有人到齐了才能开始吃?CyclicBarrier 就实现了这么一个功能. 所有的线程都互相等待着,等所有的线程到达后,然后执行. CyclicBarrier 还可以实现这么一个功能,当所有人(线程)到齐后,可以先叫服务员上菜,然后所有人再开始吃. 实现原理: 使用 ReentrantLock.condition 实现的 ...
一剪梅 评论(0) 有1503人浏览 2019-01-19 13:55

FutureTask WaitNode 源码分析

waiter 存放等待的线程,这是一个单链表,没有用 lock 或者 sync 但是实现了线程安全. static final class WaitNode {         // 记录当前线程.         volatile Thread thread;         // 指向下一个线程.         volatile WaitNode next;         WaitNode ...
一剪梅 评论(0) 有1965人浏览 2019-01-11 17:24

Linux多线程死循环、死锁时调试方法

pstack命令可显示每个进程的栈跟踪,pstack $pid即可,pstack命令须由$pid进程的属主或者root运行。   有时候进程会cpu一直100%,或者内存满了,都可以用 ...
eric_gcm 评论(0) 有3483人浏览 2018-12-21 16:54

Guava对Future的支持(回调)

//1.使用Callable返回执行结果(获取返回值get()是阻塞方法) public class FutureTest { public static void main(String[] args) throws Exception{ FutureTask<String> future = new FutureTask<String>(new CallableTa ...
zw7534313 评论(0) 有928人浏览 2018-12-17 13:59

Barrier 屏障使用

1、 System.Threading.Barrier 是同步基元,可以使多个线程(称为“参与者”)分阶段同时处理算法。 达到代码中的屏障点之前,每个参与者将继续执行。 屏障表示工作阶段的末尾。 单个参与者到达屏障后将被阻止,直至所有参与者都已达到同一障碍。 所有参与者都已达到屏障后,你可以选择调用阶段后操作。
wyf 评论(0) 有826人浏览 2018-12-11 15:25

BlockingCollection 和 IProducerConsumerCollection

1、BlockingCollection 为实现 IProducerConsumerCollection<T> 的线程安全集合提供阻塞和限制功能。 实现了 IProducerConsumerCollection<T> 接口的有:ConcurrentStack, ConcurrentQueue, and ConcurrentBag。 如果初始化BlockingCollo ...
wyf 评论(0) 有802人浏览 2018-12-11 11:48

Runtime的addShutdownHook方法可用于线程池的关闭

//Runtime的addShutdownHook方法可用于线程池的关闭 //打开jconsole,可看见主线程和子线程tt; //打印的日志可以看出addShutdownHook方法里的线程在主线程结束后开始执行 public class RuntimeTest { public static void main(String[] args) { System.out.println(& ...
zw7534313 评论(0) 有1283人浏览 2018-12-05 19:04

自定义线程池

线程池的关闭有点问题 //自定义线程池 public class MyThreadPool { private int poolSize; //当前线程数 private int corePoolSize; //线程数 private int maxPoolSize; //最大线程数 private int queueSize; //任务数 private BlockingQueue&am ...
zw7534313 评论(0) 有403人浏览 2018-12-03 16:18

多线程-使用CyclicBarrier达到join的效果

//多线程-使用CyclicBarrier达到join的效果 public class JoinTest { public static void main(String[] args) { int threadNum = 20; CyclicBarrier barrier=new CyclicBarrier(threadNum, new PrintThread()); for(i ...
zw7534313 评论(0) 有578人浏览 2018-12-02 20:19

多线程-使用CountDownLatch达到join的效果

public class ThreadTest { private static final CountDownLatch ctl = new CountDownLatch(10); public static void main(String[] args) throws Exception{ System.out.println("主线程执行前:"+Thread.c ...
zw7534313 评论(0) 有669人浏览 2018-12-01 14:18

异步导入

在网上找了很多资料,导入五花八门。由于我参与到导入功能是从架构层面上做优化,解决大数据量,并发,耗时等性能问题。 我先出了方案文档如下 导出统一用异步实现提高用户体验,导出分页标准根据各自的也无需求定(全量导出不仅性能低,数据量特别大的情况下还会导致内存溢出)。 异步导出页面设计如下: 导出时间,表格名称,导出状态(导出中,导出完成,导出异常),导出进度条,操作(下载) 异步导出针对文件加 ...
yzabstract 评论(0) 有963人浏览 2018-11-11 16:52

自己开发的在线视频下载工具,基于Java多线程

比如这个在线视频:   我们可以正常播放,但是找不到下载按钮。 打开Chrome开发者工具,在Network标签页里能看到很多网络传输请求:   随便看一个请求的响应,发现类型为video,大小为500多k。因此,这个在线视频被拆分成了若干500多k的小片段,然后通过浏览器下载到本地进行播放。   这个片段的url:
JerryWang_SAP 评论(0) 有1353人浏览 2018-11-08 11:39

基于多线程的全局变量

def current_nation default_nation = (current_contact && current_contact&.company&.country) ? current_contact&.company&.country : "United States" cookie ...
scholltop 评论(0) 有1158人浏览 2018-10-31 19:50

C#多线程

C#多线程学习(一) 多线程的相关概念   什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多 ...
liaoyang.777 评论(0) 有418人浏览 2018-09-13 18:27

es多线程调用,线程阻塞超时RuntimeException

      最近做多职位简历召回时,使用多线程进行es数据召回,发现每次es召回的时间大概在1000ms,甚至导致RuntimeException。linux机器cpu核数等于8  一、分析原因  1、单线程进行es数据召回,耗时30ms左右,猜猜是由于多线程导致的  2、切回线程池多线程执行es数据召回,每条数据耗时1000ms左右,此时线程池配置如下:        private ...
米糠杰 评论(0) 有2916人浏览 2018-09-11 11:35

Java的多线程

1,线程的状态转换: 新建,可运行,运行中,阻塞(等待锁),等待(不确定的等待和指定时间的等待),结束。     线程的join方法和yield方法; join方法: 线程A中调用线程B的join方法,则线程A将会等待线程B运行结束之后再继续运行。   yield方法: 线程调用yield方法,则是让当前正在运行的线程,把CPU时间片让给相同优先级的其他线程去运行。   ...
fly_ever 评论(0) 有1711人浏览 2018-09-03 23:23

最近博客热门TAG

应用服务器(43288) Spring(40812) Hibernate(33330) Tomcat(28345) 框架(27200) 设计模式(24056) Servlet(23313) Struts(22805) Bean(22194) 企业应用(18268) thread(15826) 多线程(14801) SUN(11436) 虚拟机(11382) Cache(11314) Security(8002) SSH(7109) DAO(6880) MVC(6206) AOP(6187)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics