multi-thread
贾诩是也
走过很多弯路,一直坚强、执着的眺望着远方、、、一个听着小米布斯故事成长起来的老码农。不忘初心,方得始终、、、给自己鼓劲加油,为这个时代华丽的时代喝彩!
展开
-
Java多线程编程之Two-phase Termination模式
停止线程是一个目标简单而实现却不那么简单的任务。首先,Java没有提供直接的API用于停止线程。此外,停止线程时还有一些额外的细节需要考虑,如待停止的线程处于阻塞(等待锁)或者等待状态(等待其它线程)、尚有未处理完的任务等。本文介绍的Two-phase Termination模式提供了一种通用的用于优雅地停止线程的方法。Two-phase Termination模式简介Java并没有提供直原创 2017-08-20 19:21:02 · 399 阅读 · 0 评论 -
再聊多线程06--了解Task的内部调度机制TaskScheduler
时我们在用多线程开发的时候少不了Task,确实task给我们带来了巨大的编程效率,在Task底层有一个TaskScheduler,它决定了task该如何被调度,而在.net framework中有两种系统定义Scheduler,第一个是Task默认的ThreadPoolTaskScheduler,还是一种就是SynchronizationContextTaskScheduler,以及这两种翻译 2018-01-30 11:41:30 · 1599 阅读 · 0 评论 -
再聊多线程05--线程池
说到多线程,不可不说线程池,C#中关于池的概念很多,今天来整理下ThreadPool的使用。 是的,如果你很懒,如果你的执行任务比较短,如果你不想对线程做更精细的控制,那么把这些繁琐的东西丢给线程池吧。 一:ThreadPool 好了,下面看看TheadPool下有哪些常用的方法。1:GetMaxThreads,GetMinThreads 首先我们肯定好奇线程池翻译 2018-01-30 11:41:02 · 208 阅读 · 0 评论 -
再聊多线程04--信号量
今天整理“信号量”的相关知识,其实想想也蛮有趣的,锁,互斥,信号量都可以实现线程同步,在framework里面主要有三种。:ManualResetEvent:AutoResetEvent: Semaphore 好,下面就具体看看这些玩意的使用。 一:ManualResetEvent 该对象有两种信号量状态True和False,好奇的我们肯定想知道True和翻译 2018-01-30 11:39:50 · 337 阅读 · 0 评论 -
再聊多线程03--互斥体
没想到我的前两篇文章还挺受欢迎的,谢谢大家,今天整理下Mutex的使用。一:Mutex首先看下MSDN对它的解释: 不错,出现了一个亮点,可用于“进程间同步“,既然进程间都可以同步,那线程同步对它来说不是小菜一碟吗?好的,还是看下Mutex在线程中发挥的神奇功效。1: 线程间同步 Metux中提供了WatiOne和ReleaseMutex来确保只有一个线程翻译 2018-01-29 08:27:18 · 250 阅读 · 0 评论 -
再聊多线程02--锁机制
当多个线程在并发的时候,难免会碰到相互冲突的事情,比如最经典的ATM机的问题,并发不可怕,可怕的是我们没有能力控制。线程以我的理解可以分为三种① 锁。② 互斥。③ 信号。 好,这一篇主要整理“锁”,C#提供了2种手工控制的锁一: Monitor类 这个算是实现锁机制的纯正类,在锁定的临界区中只允许让一个线程访问,其他线程排队等待。主要整理为2组方法。翻译 2018-01-29 08:26:54 · 185 阅读 · 0 评论 -
再聊多线程01--尝试Thread
原本准备在mongodb之后写一个lucene.net系列,不过这几天用到多线程时才发现自己对多线程的了解少之又少,仅仅停留在lock上面,故这几天看了下线程参考手册结合自己的心得整理一下放在博客上作为自己的学习笔记。 好了,我们知道“负载”是一个很时尚,很牛X的玩意,往大处说,网站需要负载,数据库需要负载。往小处说,线程也需要负载,面对海量的用户请求,我们的单线程肯定扛不住,翻译 2018-01-29 08:26:32 · 217 阅读 · 0 评论 -
Executors提供的四种线程池和自定义线程池
JAVA并发编程——EXECUTORS 线程池的思想是一种对象池的思想,开放一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完毕,对象归还给池。这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。代码: http://www.cnblogs.com/chenjingjing/articles/168翻译 2017-05-27 00:12:24 · 1313 阅读 · 0 评论 -
ThreadPoolExecutor使用详解
ThreadPoolExecutor机制 一、概述 1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务; 2、Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机制。 3、先来了解其线程池管理的机制,有助于正确使用,避免错误使用导致严重翻译 2017-05-27 00:10:26 · 493 阅读 · 0 评论 -
Java并发编程:Callable、Future和FutureTask
一.Callable与Runnable 先说一下Java.lang.Runnable吧,它是一个接口,在它里面只声明了一个run()方法:123public interface Runnable { public abstract void run();}转载 2016-10-30 22:58:14 · 216 阅读 · 0 评论 -
Java多线程编程之Active Object模式
Active Object模式简介Active Object模式是一种异步编程模式。它通过对方法的调用与方法的执行进行解耦来提高并发性。若以任务的概念来说,Active Object模式的核心则是它允许任务的提交(相当于对异步方法的调用)和任务的执行(相当于异步方法的真正执行)分离。这有点类似于System.gc()这个方法:客户端代码调用完gc()后,一个进行垃圾回收的任务被提交,但此时JV原创 2017-08-20 19:06:42 · 401 阅读 · 0 评论 -
Java多线程编程之Immutable Object模式
多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行加锁。而锁本身又会带来一些问题和开销。Immutable Object模式使得我们可以在不使用锁的情况下,既保证共享变量访问的线程安全,又能避免引入锁可能带来的问题和开销。Immutable Object模式简介多线程环境中,一个对象常常会被多个线程共享。这种情况下,如果存在多个线程并发地修改该对象的状态或者一个线程读原创 2017-08-20 19:16:10 · 284 阅读 · 0 评论 -
IO模型
目录前言IO模型网络编程模型参考资料前言说到IO模型,都会牵扯到同步、异步、阻塞、非阻塞这几个词。从词的表面上看,很多人都觉得很容易理解。但是细细一想,却总会发现有点摸不着头脑。自己也曾被这几个词弄的迷迷糊糊的,每次看相关资料弄明白了,然后很快又给搞混了。经历过这么几次之后,发现这东西必须得有所总结提炼才不至于再次混为一谈。尤其是最近看到好几篇讲这个的文章,很多都有谬误,很容易把本转载 2018-03-06 18:47:39 · 151 阅读 · 0 评论