草庐IT

nio-thread

全部标签

实例分析Scheduled Thread Pool Executor与Timer的区别

摘要:JDK1.5开始提供ScheduledThreadPoolExecutor类,ScheduledThreadPoolExecutor类继承ThreadPoolExecutor类重用线程池实现了任务的周期性调度功能。本文分享自华为云社区《【高并发】ScheduledThreadPoolExecutor与Timer的区别和简单示例》,作者:冰河。JDK1.5开始提供ScheduledThreadPoolExecutor类,ScheduledThreadPoolExecutor类继承ThreadPoolExecutor类重用线程池实现了任务的周期性调度功能。在JDK1.5之前,实现任务的周期性

实例分析Scheduled Thread Pool Executor与Timer的区别

摘要:JDK1.5开始提供ScheduledThreadPoolExecutor类,ScheduledThreadPoolExecutor类继承ThreadPoolExecutor类重用线程池实现了任务的周期性调度功能。本文分享自华为云社区《【高并发】ScheduledThreadPoolExecutor与Timer的区别和简单示例》,作者:冰河。JDK1.5开始提供ScheduledThreadPoolExecutor类,ScheduledThreadPoolExecutor类继承ThreadPoolExecutor类重用线程池实现了任务的周期性调度功能。在JDK1.5之前,实现任务的周期性

详解JAVA线程问题诊断工具Thread Dump

摘要:ThreadDump是非常有用的诊断Java应用问题的工具。本文分享自华为云社区《调试排错-Java线程分析之线程Dump分析》,作者:龙哥手记。ThreadDump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个Java虚拟机打印的threaddump略有不同,但是大多都提供了当前活动线程的快照,及JVM中所有Java线程的堆栈跟踪信息,堆栈信息一般包含完整的类名及所执行的方法,如果可能的话还有源代码的行数。ThreadDump特点能在各种操作系统下使用;能在各种Java应用服务器下使用;能在生产环境下

详解JAVA线程问题诊断工具Thread Dump

摘要:ThreadDump是非常有用的诊断Java应用问题的工具。本文分享自华为云社区《调试排错-Java线程分析之线程Dump分析》,作者:龙哥手记。ThreadDump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个Java虚拟机打印的threaddump略有不同,但是大多都提供了当前活动线程的快照,及JVM中所有Java线程的堆栈跟踪信息,堆栈信息一般包含完整的类名及所执行的方法,如果可能的话还有源代码的行数。ThreadDump特点能在各种操作系统下使用;能在各种Java应用服务器下使用;能在生产环境下

IO、NIO、BIO傻傻分不清吗,让我对象告诉你~~

1、Stream与Channelstream不会自动缓冲数据,channel会利用系统提供的发送缓冲区、接收缓冲区(更为底层)stream仅支持阻塞API,channel同时支持阻塞、非阻塞API,网络channel可配合selector实现多路复用二者均为全双工,即读写可以同时进行虽然Stream是单向流动的,但是它也是全双工的2、IO模型同步:线程自己去获取结果(一个线程)例如:线程调用一个方法后,需要等待方法返回结果异步:线程自己不去获取结果,而是由其它线程返回结果(至少两个线程)例如:线程A调用一个方法后,继续向下运行,运行结果由线程B返回当调用一次channel.read或strea

IO、NIO、BIO傻傻分不清吗,让我对象告诉你~~

1、Stream与Channelstream不会自动缓冲数据,channel会利用系统提供的发送缓冲区、接收缓冲区(更为底层)stream仅支持阻塞API,channel同时支持阻塞、非阻塞API,网络channel可配合selector实现多路复用二者均为全双工,即读写可以同时进行虽然Stream是单向流动的,但是它也是全双工的2、IO模型同步:线程自己去获取结果(一个线程)例如:线程调用一个方法后,需要等待方法返回结果异步:线程自己不去获取结果,而是由其它线程返回结果(至少两个线程)例如:线程A调用一个方法后,继续向下运行,运行结果由线程B返回当调用一次channel.read或strea

Netty(1)——NIO基础

本篇主要介绍JavaNIO的基本原理和主要组件Netty是由JBOSS提供的Java开源网络应用程序框架,其底层是基于Java提供的NIO能力实现的。因此为了掌握Netty的底层原理,需要首先了解JavaNIO的原理。NIO简介计算机主要由CPU、内存、外存、IO设备等硬件组成,计算机执行计算的过程就是CPU从内存中获取数据,进行计算,然后再将计算结果写入内存中。但由于内存非常昂贵且下电后数据会丢失,计算机需要使用外存来持久化存储大规模的数据,外存提供了大量的存储空间,代价是其存取速度远小于内存。除了读取外存数据,计算机还可以从网络设备获取网络中的数据,受网络传输速度的限制,计算机获取网络数据

Netty(1)——NIO基础

本篇主要介绍JavaNIO的基本原理和主要组件Netty是由JBOSS提供的Java开源网络应用程序框架,其底层是基于Java提供的NIO能力实现的。因此为了掌握Netty的底层原理,需要首先了解JavaNIO的原理。NIO简介计算机主要由CPU、内存、外存、IO设备等硬件组成,计算机执行计算的过程就是CPU从内存中获取数据,进行计算,然后再将计算结果写入内存中。但由于内存非常昂贵且下电后数据会丢失,计算机需要使用外存来持久化存储大规模的数据,外存提供了大量的存储空间,代价是其存取速度远小于内存。除了读取外存数据,计算机还可以从网络设备获取网络中的数据,受网络传输速度的限制,计算机获取网络数据

rt-thread中MSH_CMD_EXPORT()函数的实现原理-const char __fsym_##cmd##_name[] RT_SECTION(“.rodata.name“) = #cmd

constchar_fsym##cmd##_name[]RT_SECTION(".rodata.name")=#cmd学习一下这行代码对这行代码里面的__fsym双#,RT_SECTION这些都不理解#defineRT_SECTION(x)attribute((section(x)))这行代码的__attribute__((section(x)))又是什么意思???学习结论:把__fsym_##cmd##_name[]这个变量放置到名为".rodata.name"的段中attribute((section(x)))使用详解----精品那么问题来了,使用section将变量放到我们自定义的输入段

rt-thread中MSH_CMD_EXPORT()函数的实现原理-const char __fsym_##cmd##_name[] RT_SECTION(“.rodata.name“) = #cmd

constchar_fsym##cmd##_name[]RT_SECTION(".rodata.name")=#cmd学习一下这行代码对这行代码里面的__fsym双#,RT_SECTION这些都不理解#defineRT_SECTION(x)attribute((section(x)))这行代码的__attribute__((section(x)))又是什么意思???学习结论:把__fsym_##cmd##_name[]这个变量放置到名为".rodata.name"的段中attribute((section(x)))使用详解----精品那么问题来了,使用section将变量放到我们自定义的输入段