2012这一年

Java性能调优实战:jstack线程堆栈分析从原理到应用 在Java应用性能调优领域,线程状态分析是诊断复杂线上问题的核心技术手段。其原理基于JVM线程模型,通过捕获线程执行堆栈的快照,揭示线程的运行状态、锁持有与等待关系。这项技术的核心价值在于能够精准定位死锁、CPU热点、线程阻塞等疑难问题,是保障应用稳定性的关键。在实际应用场景中,它常与系统监控指标(如CPU使用率)结合,用于分析应用无响应、性能骤降等生产环境故障。本文聚焦于jstack这一JDK原生工具,深入解读其输出的线程堆栈日志结构,并分享如何识别死锁、CPU占用过高等典型问题模式,帮助开发者快速掌握这 阅读详情

文/刘江

即将过去的2012年,也许可以用“沧海桑田”和“合纵连横”两个词来概括。

沧海桑田

移动真正成为主流无疑仍然是今年最大的新闻。2011年全球智能手机出货量(4.87亿)历史性地全面超过电脑(4.14亿,含PC和平板)之后,2012 年一季度单单Android设备出货量又首次超过了Windows设备。Mary Meeker估计,到2013年二季度,智能手机加平板的安装基数也将超过PC,此后前一数字将一骑绝尘,到2015年两倍于PC。而中国互联网络信息中 心(CNNIC)今年7月发布的报告显示,我国网民中用手机接入互联网的用户占比已达到72.2%,首次超过台式电脑。

与此相对应的,是整个产业和技术平台沧海桑田般的巨变。

操作系统与芯片

操作系统与芯片在传统上被认为是最为重要的基础技术平台。2012年,曾经似乎不可战胜的Wintel帝国已经分崩离析,引领了这一波创新和颠覆浪潮的Apple系统也开始露出疲态,后来居上的,是Android+ARM的AA开放联盟。

在芯片层,ARM架构继续在移动设备上高歌猛进,对x86和其他架构造成巨大的压力。2012年一系列标志性事件都与此有关:

  • 高通市值超过Intel;
  • Intel CEO欧德宁提前退休;
  • AMD陷入危机,甚至爆出出售传闻;
  • MIPS被并购;

与此同时,价廉低耗的ARM架构芯片也开始强力渗透到x86的传统领地:PC和服务器。AMD已经宣布要拥抱ARM。微软专门为ARM开发了Windows RT,并基于ARM推出了自己介于PC与平板之间的新型设备——Surface,不惜因此得罪最重要的合作伙伴,削弱赖以称雄多年的生态系统。而 Apple自行研发的处理器不仅成为其移动设备的核心竞争力,更有可能入主Mac电脑。Google的Chromebook也是基于ARM的。低功耗定制 服务器也成为互联网和云计算公司关注的焦点,随着64位ARM量产,这种影响会更明显地体现出来,会促使服务器产业发生重大变革。

在操作系统层,微软在Windows 8设计上采取了很不自然的非常规方式,在触摸界面中内置一个传统WIMP,其实完全沿袭了近30年前DOS面临图形界面挑战时的思路。再加上微软在新版本 上不惜大幅改变和影响PC上的用户习惯也要与移动平台界面统一的决策,恰恰都从侧面说明了移动兴起这次大变革是多么的深刻。

这一波操作系统之战是否还有变数?

Windows 收复失地的难度非常大。真正的变数也许来自其他开源操作系统。较大规模的设备厂商都在寻找替代方案以免哪天被掐脖子。Mozilla团队开发的 Firefox OS,从MeeGo涅槃而来的Jolla Sailfish,webOS开源后的Open webOS,以及其他基于Linux的操作系统并非没有机会。

最值得重视的,是Linux基金会的Tizen,背后站着Intel和三星。三星已成为全球第一大智能手机厂商,Galaxy SIII风头甚至可以与iPhone抗衡。建立自己完整的生态系统,摆脱Google的阴影并与几大世界级巨头同台竞争,这种诱惑实在是太大了。

最后,主流操作系统和芯片的价格都大大降低(甚至免费),其意义也不可低估。

Web与App的未来

Web与App是操作系统之上的技术层。如果用今天的概念来套,客户端其实是Windows平台上的一个个App,而形形色色的互联网站(也就是Web)可以认 为是Windows上一个特殊App——浏览器里的App。这些处在不同技术层次上的App,其中用户最多、使用频率最大的,也有机会成为平台。QQ和 360是客户端App成为平台的例子,而Google、Facebook、Amazon、百度和阿里则是Web平台的代表。

《Wired》杂志2010年的文章“The Web is Dead”将Web与App之争变成一个业界热门话题。从技术上严格地说,Web作为一种架构风格,是互联网的基础之一,地位很难撼动。但这一讨论中的 Web其实只是针对最终用户的网页,也就是用户未来是否还会像PC上那样凡事打开浏览器,再完成各种任务。

2012年,移动平台Web与App的此消彼长已是不争的事实。Facebook不得不在今年高调承认坚持HTML5是战略上的错误,它在2012年4月以10亿美元收购只有13个员工的移动App公司Instagram,似乎是为这一争论划下了句号。

中期看,网速、屏幕尺寸、移动浏览器的性能和输入不便等限制,对各种传感器等物理硬件的访问等目前移动Web的问题,都会随着HTML5技术的发展逐步得到解决(兼容性问题是另外一回事了),PC互联网上C/S向B/S转移的历史会不会重演呢?可能性很大。

但Web作为一种终端技术,还面临着另一种终极挑战。那就是语音、表情和体感等新型交互与个性化实时数据支撑的智能助理模式,越过网页直接通过API调用, 返回各种结果数据,执行所请求的操作。Siri和Google Now、Google Glass等产品已经显露出这种端倪。

的确,除了大量输入性的任务,如果系统能够记录你的大部分活动信息且将很多任务自动化,并实现个性化推荐,如果语音交互界面能让你像现实生活中指挥小秘那样,只需动动 嘴皮子,就把事儿都办了,谁还愿意再打开浏览器、在搜索引擎里输入或者收藏夹里查找、打开链接才开始工作呢?我们用这些信息设备的目的,无非是要获取、产 生和修改一些信息而已。

是的,Web很可能不会因App而死,它将死于大数据支撑下的平台本身。浏览器、搜索引擎和我们现在习以为常的Web相关基础设施,都有可能会随之而消亡。

赢利模式

移动主流化首先带来的是问题赢利难。不仅独立开发者步履艰难,连Google、百度、腾讯这样的巨头在转向移动的过程中,单位收入也在下降,一样没有找到很好的解决方案。

分析起来,传统互联网上基本的赢利模式无非游戏道具、广告和电子商务三种。移动主流化对游戏基本没有太大影响,而新设备在非游戏人群中的渗透,还为《愤怒的小鸟》代表的休闲游戏的兴起创造了机遇。2012年,无论Android还是iOS,国内都涌现出不少月收入过千万人民币的游戏。而iOS上目前成绩最好 的芬兰游戏开发商Supercell日收入达75万美元,媒体已将其与Zynga相提并论了。

广告则遇到了大麻烦,事实上这也许是一件好 事。传统的互联网广告往往杂乱无章,相关性差,极为低效,还影响用户体验(想想典型的中国式门户网站飘来飘去红红绿绿的广告吧);移动设备屏幕小的限制逼 着我们返璞归真,思考如何能够将广告转变为与用户当前场景契合的有用信息推荐。

电子商务是移动设备能大展宏图的地方。因为有购物者ID标识,而且随身,移动设备天然是更好的比价器和购买决策助手。但目前的体验需要改善,用户习惯还需要时间培养。

其实,除了传统的模式之外,如果系统平台能够提供类似智能助理的能力,将为移动互联网带来更多广告收入、付费内容发行和线下业务闭环的机会,这个潜力是空前巨大的。

为什么呢?

看看图1(美国线下广告与线上广告的比例),来自Business Insider的报告《The State of The Internet 2012》。这幅图很好地提醒了IT从业者,线下经济是多么巨大。另外,中国2012上半年社会零售总额98222亿元,而电子商务是5119亿元,只占5%而已。

图1 美国线下广告与线上广告的比例

2012MDCC移动开发者大会上,CSDN创始人蒋涛针对移动应用的赢利难提出了四化:垂直化、硬件化、平民化和企业化。的确,广播电视、新闻出版、教育、金融、零售等诸多传统行业都已经到了变革前夜,如何更好地与之结合,是我们的机遇所在。事实上,无论是1990年代的软件还是2000年代的互联网两 拨浪潮,在通用领域成功的永远只有少数后来的巨头,更多公司都在垂直市场、在企业服务中立足发展起来。

合纵连横

平台=生态系统

今天,平台的定义已经改变。操作系统、芯片、浏览器这些技术层都只是平台的一部分。垂直整合的完整生态系统才是真正的平台。平台的领导企业将成为信息运营商,它将掌握用户的足够数据,能提供前面讲到的智能助理式的整合服务。

在我看来,这个生态系统中最必不可缺的是具有统一ID登录系统的足够多活跃用户,更重要的则是有能力让第三方获得足够的收入,因此广告、电子商务和游戏平台 这些赢利服务是否强大关乎成功。此外,还包括支持设备的基础软硬件,搜索、社交、地理位置服务、统一通信、支付等基础平台服务,这些选项虽然并非全部必 需,但对积累用户数据却至关重要,多多益善。毕竟,最终平台之间决胜的关键,是大数据支撑下的终极用户体验。

国外竞争分析

2012年平台之战已经成为整个产业的主旋律。无论是操作系统(iOS和Android新版本的竞争)、移动设备(十月份各家发布新产品的密度,几乎让人目不暇 给),还是内容资源(Google Android负责人Andy Rubin的头衔不知何时已经变成了移动与数字内容高级副总裁,Amazon则耗费数亿美元在Prime账号里增加新的视频内容资源,与Netflix竞 争)、线下资源(iOS 6将Google地图踢出,并推出野心很大的Passbook),竞争已经在Google、Apple、Facebook、Amazon和微软五大巨头之 间全面展开。而此外的企业或合作,或并购,或诉讼,通过合纵连横寻找自己的生存之道。原因无它,用户需要有整合无缝的体验。想想吧,当手机上某个瞬间跳出 一个窗口,你却搞不清楚来自哪里:短信?微信?GTalk?微博?……

在Larry Page执掌帅位一年多以来,Google战略上非常清晰,以Google+为核心打通原来四面作战的诸多主要产品,再加上Android的爆炸性增长, 基本上已经弥补了原来没有统一ID系统的最大缺项,甚至将之变成了自己的优势。此外,在产品设计上,Google在过去一年已经有长足进步,对Apple 直接产生威胁。而Google可怕的云平台和算法能力,必将在未来各种智能应用中展现出来。与线下的结合还是Google较弱的地方,另外 Facebook这个影子杀手的威胁,并未解除。

失去乔布斯之后的第一年,虽然Tim掌舵下的Apple业绩上仍然抢眼,产品发布也非常平稳,但势头上明显已经由攻转守。我一年前提到的问题:Apple太依赖硬件,尚没有完成互联网化,仍然没有得到解决。从地图事故以及一系列云服务的问题来 看,Apple的高层领导里并无真正理解互联网的人才。难怪原iPad团队的成员Patrick Gibson建议Apple收购Twitter,补充这方面的实力。

有Mark Zuckerberg这样的创始领导人,Facebook还是很令人放心的。迅速决策收购最有潜力的颠覆者Instagram,足以使他高枕无忧数年。另外将移动转型作为工作中心并卓有成效(第三季度移动广告收入已经大增),这一年Facebook的成绩堪称完美。

Amazon的Jeff Bezos是个可怕的对手,这家公司上一季度还在亏损,很多业务都在赔钱,包括光鲜的Kindle Fire、Prime服务等,云计算领域的霸主AWS也不太挣钱,但客户满意率极高,股东们也是,今年公司市盈率一度高达3000以上。他在一年内先后被 《Forbes》评为美国最佳CEO,被《Fortune》评为年度企业人物。

顺利发布Windows 8和Surface也颇有新意,应该说,对于微软这样的前霸主,这一年大转型已经非常不容易了。大局要求尽快将微软手中的产品像Google+那样紧密整 合,比如在Windows 8桌面最明显处直接放一个大大的搜索框,直达Bing;比如在SkyDrive上直接为用户提供与本机硬盘一样大小的云存储,保持同步,用户不用再考虑到 底存在哪里。目前的Windows 8这方面做得还很不够。而Sinofsky出局是福是祸,现在还看不清楚,至少现在微软内部看不到大刀阔斧搞整合的领军人物。

这五巨头之外,还有三星值得关注。作为当今第一大智能手机厂商,它完全有实力加入平台之争。只不过,它要补的课是最多的,积极展开收购是明智的选择。

国内竞争分析

国内呢?从账号系统来判断,符合条件的平台其实只有腾讯和阿里。还有新浪算半个。

腾讯的核心QQ和QZone是一个强账号系统,但在PC端已经做得非常重,向移动的移植包袱很重,面临新兴力量的挑战。不料挑战者却是自己人——张小龙斜刺 里杀出,搞了个微信出来。微信对于腾讯不仅意味着QQ在手机上的实现双保险,它通过打通手机通讯录,将智能手机用户一一纳入囊中,强势进入了腾讯梦想多年 的高端市场,这个意义极为深远。在这个市场上,微信和新浪微博虽然产品形态不同,但最终会殊途同归。这也是我之前说过“微信和微博必有一战”的含义所在。

阿里布局上与Amazon类似,但账号系统更为丰富,也更杂,目前的布局稍显散乱。支付宝和阿里金融对后续打通传统行业已经构筑了强大的桥头堡,想象空间很 大。与Amazon的缺陷也一样,需要从纯购物的色彩走出来,扩展为更为通用的平台。投资新浪微博是一个很好的选择。阿里的基因是国内公司里最适合做平台 的,决心不容怀疑,那是他们的成功之道。

而新浪微博这一年的发展略显停滞。微博产品本身原来是具有平台型潜力的,是互联网中少数能够做一些正事儿的地方,但新浪与Twitter一样,受自身整体格局所限,一方面太早太多开始商品化,微博营销横行,另一方面又固守媒体思维,对第三方开发者扶持 力度不足,甚至限制打压,可惜了。新浪微博已经构建了一个超过4亿ID的系统,而且目前在产品形态上相比微信更加灵活开放、容易扩展,如果能将私信功能剥 离成独立的移动App好好打造,增加工具性,然后在大平台上个性化方面、筛选信息方面下工夫,应该还是有希望的。

百度缺乏全局性的账号系统,“核心业务搜索是无需用户登录就能使用的服务,对用户的长期黏性最弱”,而且没有Gmail这样的基础登录性服务。之前推的新首页应该是有鼓励用户登录的含义,但这个并非强需求,很难达到目的。近年做的一些客户端产品也多乏善可陈。地图倒是做出了一定的门槛,是个有战略意义的产品。其实我很奇怪今年百度发布个人云盘时为何不直接展示一下自己的技术实力,发布一个百G级的,一举能够获得多少登录用户啊。

本文选自《程序员》杂志2012年12期,未经允许不得转载。如需转载请联系 market@csdn.net

Java死锁实战:从复现、检测到根治的完整指南 死锁是多线程编程中典型的资源竞争问题,本质源于互斥、占有并等待、不可剥夺和循环等待四大必要条件。在Java中,synchronized关键字、ReentrantLock显式锁及跨层资源(如数据库行锁)共同构成高危触发场景。其技术价值在于可确定性复现与系统化防控——不同于随机异常,死锁具备稳定的状态特征(如线程BLOCKED+循环锁依赖),可通过jstack、JFR、Arthas等工具精准捕获。典型应用场景覆盖电商转账、金融清算、高并发缓存更新等强一致性业务。本文聚焦Java生态下的死锁指纹识别、全链路检测策 阅读详情

相关推荐

Java死锁实战手册:检测、分析与跨资源锁序防控

死锁是并发编程中典型的资源竞争问题,本质源于多个线程/服务对共享资源的循环等待。其核心原理在于持有并等待、不可剥夺与循环等待三条件叠加,而工程上唯一可主动干预的是锁获取顺序的一致性。通过JVM线程监控(ThreadMXBean)、跨层锁注册中心、锁序字典与IDL契约等技术手段,可实现从单机synchronized到分布式Redis/DB锁的全链路死锁检测与根因定位。该能力直接支撑金融级资金流水、电商秒杀库存等强一致性场景的高可用保障,是后端开发者必须掌握的稳定性工程基础能力。

diaozhiwa5526的博客 346

多线程之如何查看线程死锁

因为线程死锁程序可能只是卡住了,但是没有报错,你也不清楚哪里出了问题,那么你就要想到是否会出现死锁的问题 idea卡住了 打开命令行输入jsp,查看进程,并输入jstack (进程号) 如果是死锁的话会提示,然后找到对应的代码就好了...

伟大是熬出来的 4903

数字IC后端层次化Hierarchical Flow子系统Sub-System模块 block partition和pin assignment细节盘点

数字IC后端培训教程之Hierarchical Flow子系统block partition和pin assignment详细教程

weixin_37584728的博客 1537

SpringBoot启动卡住无日志?三步定位线程阻塞点与解决方案

在Java应用开发中,线程阻塞是常见的性能与稳定性问题,尤其在SpringBoot这类复杂框架的启动阶段。其原理通常是某个线程在等待资源(如锁、I/O、网络连接)时被挂起,导致整个应用流程停滞。理解线程状态(RUNNABLE、WAITING、BLOCKED)和线程转储分析技术,对于诊断生产环境中的“静默”故障具有重要价值。通过jstack等工具获取线程快照,可以精准定位到数据库连接池、配置中心客户端或自定义初始化代码中的阻塞点,这是后端工程师必备的线上调试技能。本文以SpringBoot启动卡住的典型场景为

weixin_34252090的博客 405

吃透 Java 死锁,一篇就够。

排查 Java 死锁问题是一个系统且细致的过程,需要我们从现象识别入手,通过获取线程转储、分析代码、复现问题等多个环节,逐步定位问题根源,并采取有效的解决方案。在实际开发中,遵循良好的并发编程规范,合理使用高层次的并发工具(如包),能够从源头上减少死锁发生的可能性。同时,建立完善的监控机制和持续的测试流程,有助于及时发现并解决潜在的死锁风险,保障应用程序的稳定运行。

2401_89221445的博客 860

如何定位线上OOM?

然后用jvisualvm这个工具载入dump文件,选择堆类型。提前设置OOM后生成一个dump文件(.hprof)利用history命令也可以看到对象。随意点开一个,找到GCROOT。利用jps可以找到java线程。找到未释放的对象进行释放。

善守者 1022

IntelliJ IDEA Profiler性能监控与分析指南

IntelliJ IDEA集成Profiler工具助力Java性能优化 摘要:IntelliJ IDEA 2023.2+版本内置的Profiler工具为Java开发者提供了强大的性能分析能力。该工具整合了AsyncProfiler和JFR技术,支持CPU、内存、线程等多维度分析。通过火焰图、调用树等方法可直观定位性能瓶颈,内存快照功能可检测内存泄漏,线程转储能分析死锁问题。实时监控图表可观察CPU、内存等资源使用情况,帮助开发者快速解决接口响应慢、CPU占用高、内存泄漏等常见性能问题,是优化Java后端应用

yingrou5033的博客 4687

系统卡顿排查指南:从死锁到线程池问题的实战诊断

在并发编程和分布式系统中,进程或线程的阻塞是常见的性能瓶颈。理解其背后的状态机原理,如Java线程的BLOCKED、WAITING等状态,是诊断问题的关键。通过分析线程转储和系统资源,可以定位死锁、锁竞争等核心问题。这些技术对于保障系统稳定性和高可用性至关重要,尤其在微服务和数据库操作等场景中。本文聚焦于实战中的线程池任务堆积和数据库连接泄漏等典型卡顿场景,提供了一套标准化的排查路径和工具链使用方法。

weixin_33911824的博客 331

【Java】服务CPU占用率100%,教你用jstack排查定位

本文介绍了使用jstack工具诊断Java应用中CPU高占用问题的方法。关键步骤包括:首先,通过top或jps -l命令定位高CPU占用的Java进程;其次,运用top -Hp 找出消耗CPU最多的线程;接着,将线程ID转换为十六进制,以便于jstack命令使用;最后,通过jstack | grep '' -C5命令获取特定线程的堆栈信息,进而分析和修复问题代码。jstack是Java开发者解决性能问题的有力工具。

JavaDog程序狗 4152

程序静默失败排查指南:从资源泄漏到线程池耗尽的五大原因与解决方案

在软件工程实践中,程序的静默失败(Silent Failure)是一种比显式崩溃更具隐蔽性和破坏性的问题。其核心原理在于,任务或服务在未抛出明确异常的情况下停止工作,导致系统功能在无预警中失效。这类问题的技术价值在于,它们往往揭示了系统在资源管理、并发控制和外部依赖处理等深层次设计上的缺陷。典型的应用场景包括后台定时任务无故停止、消息队列消费者卡住、以及网络服务线程池耗尽等。要有效应对,开发者需要掌握一套从监控指标到根因分析的系统性方法。例如,通过分析JVM内存指标和线程堆栈,可以精准定位资源泄漏和死锁等常

weixin_34054931的博客 330

IDEA集成VisualVM:Java开发性能监控与内存泄漏排查实战指南

在Java应用开发中,性能监控与内存管理是保障应用稳定性的关键技术。JVM性能分析工具通过监控堆内存、线程状态和CPU使用率,帮助开发者理解应用运行时的内部状态。其技术价值在于能够实时诊断内存泄漏、CPU过高和线程死锁等常见问题,从而优化代码性能和资源利用率。在实际开发场景中,集成VisualVM到IDEA可以无缝连接本地Java进程,实现一键启动与自动化监控,显著提升开发调试效率。本文基于VisualVM Launcher插件,详细讲解如何配置JMX参数、使用抽样器进行CPU与内存分析,并通过实战案例演示

weixin_34080571的博客 298

一款被低估的插件:IDEA+JProfiler=性能分析神器

本文介绍了IntelliJ IDEA内置Profiler工具的性能分析方法。该工具集成了AsyncProfiler和JFR技术,可对Java应用的CPU、内存和线程进行低损耗监控。主要功能包括:通过火焰图和调用树定位CPU热点;内存快照分析泄漏问题;线程转储排查死锁;实时监控资源使用。文章提供了SpringBoot项目的具体操作步骤和分析技巧,建议采用对比分析、关注业务代码等方法进行性能优化。该工具降低了性能分析门槛,帮助开发者快速定位和解决响应慢、内存泄漏等常见性能问题。

x2277659985的博客 1916

IDEA高级调试实战:从断点基础到多线程与远程调试全解析

在软件开发中,调试是定位和修复程序错误的核心技术。其原理是通过控制程序执行流程,在特定位置暂停,允许开发者实时检查变量状态、内存数据和执行路径,从而理解程序的实际运行行为。掌握高效的调试技术对于提升开发效率和代码质量具有重要价值,尤其在处理复杂业务逻辑、并发问题和系统集成时。本文聚焦于Java开发中广泛使用的IDEA调试器,深入讲解条件断点、多线程调试、远程调试等高级应用场景。通过融入热词【条件断点】和【远程调试】,详细展示了如何利用条件表达式精准拦截特定状态,以及如何连接并调试部署在测试环境的JVM进程,

weixin_34297704的博客 565

Arthas阿尔萨斯的使用安装详细教程

Arthas阿尔萨斯的使用安装详细教程

心向阳光的天域的博客 4633

常见错误解决方法总结

基本原则 每写一个模块就测试一下,写出其对应得Test方法进行测试,及时发现问题。 如果出现错误,可以采取以下几种方式进行排错: 可以插入System.out.println()函数在不同的地方输出相关信息(这种仅仅是针对已知道问题大概在哪,一般是项目不大的时候可以采用)。 可以自定义异常类,在适当的位置进行抛出,然后进行捕获。 采用代码编辑器的Debug工具,我用过的很多编辑器都是有Debug功能的,Java方面Idea 和Eclipse都有,Python的Pycharm编辑器,C++的Visu.

qq_39144436的博客 923

SpringBoot应用启动卡死无日志?深度排查与解决方案全解析

在Java应用开发中,应用启动失败是常见的运维挑战。当进程启动后无任何错误日志输出,仅表现为进程卡死或资源占用异常时,问题定位往往最为棘手。这类问题通常涉及线程死锁、资源等待或初始化循环依赖等底层原理。从技术价值看,快速定位并解决此类问题能极大提升开发效率和系统可靠性。在SpringBoot微服务架构的应用场景下,启动卡死常与Bean初始化顺序、外部资源连接(如数据库、注册中心)以及依赖冲突密切相关。本文聚焦SpringBoot应用静默启动失败这一典型问题,通过线程转储分析、依赖冲突排查等工程实践方法,提供

weixin_34138056的博客 356

基于物联网设计温室水培系统(NBIOT+华为云IOT)_338

本项目设计并实现了一套基于物联网的温室水培系统。系统以STM32F103RCT6单片机为核心控制器,结合SHT30温湿度传感器、SGP30二氧化碳传感器、BH1750光照传感器及液位检测传感器等硬件,实现对温室内环境参数的实时采集。系统支持自动和手动两种控制模式,能够根据传感器数据自动控制补光灯、通风风扇、遮光卷帘、降温水帘及营养液补充电机。通过NBIoT模块,系统可将采集的数据通过MQTT协议上传至华为云IOT平台,用户可通过Android手机APP或Windows上位机进行远程监控与控制。

376

资产证券化ABS全解析干货资料(250页+,基础+实操+案例)

资产证券化(ABS)在金融领域的重要性就不用多说了,本期资料是一线大咖的理论和经验的总结,资料总共二百六十多页,非常实用,内容涵盖以下内容:境外资产证券发展历程资产证券化的本质资产证券化的核心交易结构国内资产证券化的发展历程主流资产证券化产品对比资产证券化的参与方资产证券化的监管机构不同ABS的交易结构不同ABS的融资主体不同ABS的标的资产不同ABS的发行流程不同ABS的发行效果债权类ABS评级简析收费收益权ABS评级简析REITs项目评级简析债权类ABS定义及少笔债权类ABS基础资产特征少笔债权类ABS的信用实质租赁ABS基本类型及投资分析从投资角度看ABS债权类ABS的信用分析收费收益权ABS信用分析类REITs信用分析租赁行业案例分析债权业务案例分析收费群资产证券化案例解析电影产业项目案例分析本人平时还收集了一份【资产证券化ABS资料大合集】,已购买的童鞋如果需要,可在评论区留下你的邮箱,我免费发给你~【资产证券化ABS资料大合集】目录如下:【资产证券化ABS全解析干货资料】部分资料截图如下:

上一篇: 项目延期原因及应对之道
下一篇: 让我们的产品更成功
ksharer
博客等级 码龄18年 13粉丝 7原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值