#THR

【转】编写高质量代码改善C#程序的157个建议——建议80:用Task代替ThreadPool

 建议80:用Task代替ThreadPoolThreadPool相对于Thread来说具有很多优势,但是ThreadPool在使用上却存在一定的不方便。比如:ThreadPool不支持线程的取消、完成、失败通知等交互性操作。ThreadPool不支持线程执行的先后次序。以往,如果开发者要实现上述功能,需要完...

【转】编写高质量代码改善C#程序的157个建议——建议79:使用ThreadPool或BackgroundWorker代替Thread

 建议79:使用ThreadPool或BackgroundWorker代替Thread使用线程能极大地提升用户体验度,但是作为开发者应该注意到,线程的开销是很大的。线程的空间开销来自:1)线程内核对象(ThreadKernelObject)。每个线程都会创建一个这样的对象,它主要包含线程上下文信息,在32位系...

基于C++11的线程池(threadpool),简洁且可以带任意多的参数

咳咳。C++11加入了线程库,从此告别了标准库不支持并发的历史。然而c++对于多线程的支持还是比较低级,稍微高级一点的用法都需要自己去实现,譬如线程池、信号量等。线程池(threadpool)这个东西,在面试上多次被问到,一般的回答都是:“管理一个任务队列,一个线程队列,然后每次取一个任务分配给一个线程去做...

common-pool2 学习:thrift连接池的另一种实现

对象池是一种很实用的技术,经典的例子就是数据库连接池。去年曾经从零开始写过一个thrift客户端连接池。如果不想重造轮子,可以直接在apache开源项目commons-pool的基础上开发。 步骤:一、定义对象工厂packagetest.cn.mwee.service.paidui.pool;importor...

thrift:swift项目笔记

先声明:此swift不是Apple公司的那个swift开发语言,而是facebook的另一个开源项目。facebook的thriftIDL文件,如果默认用thrift-genjava生成java代码,代码十分冗长,大家可以先感受一下。一、IDL文件serviceHelloService{stringping()}二、t...
代码星球 ·2020-04-06

dubbo/dubbox 增加原生thrift及avro支持

(facebook)thrift/(hadoop)avro/(google)probuf(grpc)是近几年来比较抢眼的高效序列化/rpc框架,dubbo框架虽然有thrift的支持,但是依赖的版本较早,只支持0.8.0,而且还对协议做一些扩展,并非原生的thrift协议。github上虽然也有朋友对dubbo做了扩展...

基于thrift的微服务框架

前一阵开源过一个基于spring-boot的rest微服务框架,今天再来一篇基于thrift的微服务加框,thrift是啥就不多了,大家自行百度或参考我之前介绍thrift的文章,thrift不仅支持tcp/ip协议的rpc调用,也支持http协议的rest服务调用,同一个项目中甚至可同时支持这二种方式。thrift项...
代码星球 ·2020-04-06

thrift 一个有意思的特性:Class名称无关性

最近开发的一个项目,后端采用thrift框架来提供rpc服务(java语言实现),然后前端采用php语言来生成thriftclient调用后台RPC服务。由于某些原因,上周我把thrift定义文件中一个struct名称修改了,当然也没多想,顺手就把java服务端重新编译部署,而php前端的部署未做任何变化,按常规理解,...

thrift中的超时(timeout)坑

最近在项目中采用thrift作为后台服务rpc框架,总体用下来性能还不错,跨语言特性使用起来也还行,但是也遇到了一些坑,其中之一就是超时问题(timeout),如果服务端些的某些业务场景耗时较长,thriftclient几乎毫无意外的会遇到:Readtimedout,当然解决办法也很容易,thriftclient端手动...
代码星球 ·2020-04-06

java并发编程学习: 守护线程(Daemon Thread)

在正式理解这个概念前,先把守护线程与守护进程这二个极其相似的说法区分开,守护进程通常是为了防止某些应用因各种意外原因退出,而在后台独立运行的系统服务或应用程序。比如:我们开发了一个邮件发送程序,一直不停的监视队列池,发现有待发送的邮件,就将其发送出去。如果这个程序挂了(或被人误操作关了),邮件就不发出去了,为了防止这种...

java并发编程学习: ThreadLocal使用及原理

多线程应用中,如果希望一个变量隔离在某个线程内,即:该变量只能由某个线程本身可见,其它线程无法访问,那么ThreadLocal可以很方便的帮你做到这一点。 先来看一下示例:packageyjmyzz.test;publicclassThreadLocalTest1{publicstaticclassMyRun...

rpc框架之 thrift连接池实现

接前一篇rpc框架之HA/负载均衡构架设计继续,写了一个简单的thrift连接池:先做点准备工作:packageyjmyzz;publicclassServerInfo{publicStringgetHost(){returnhost;}publicvoidsetHost(Stringhost){this.host=h...

rpc框架: thrift/avro/protobuf 之maven插件生成java类

thrift、avro、probobuf这几个rpc框架的基本思想都差不多,先定义IDL文件,然后由各自的编译器(或maven插件)生成目标语言的源代码,但是,根据idl生成源代码这件事,如果每次都要手动敲命令,未免太无聊了,幸好这三种框架都提供了对应的maven插件来完成代码的自动生成,本文演示了这三种框架的mave...

rpc框架之 thrift 学习 2

thrift的基本构架:上图源自:http://jnb.ociweb.com/jnb/jnbJun2009.html底层UnderlyingI/O以上的部分,都是由thrift编译器生成的代码,其中:YourCode这是根据thrift文件中定义的dto及service接口方法FooService.Client及Foo...
代码星球 ·2020-04-06

rpc框架之 thrift 学习 1

thrift是一个facebook开源的高效RPC框架,其主要特点是跨语言及二进制高效传输(当然,除了二进制,也支持json等常用序列化机制),官网地址:http://thrift.apache.org跨语言通常有二种做法,一是将其它语言转换成某种主流的通用语言,比如:delphi.net以前就是先将delphi转换成...
代码星球 ·2020-04-06
首页上一页...3536373839...下一页尾页