概述
对协程的技术已经觊觎很久,他有高性能的优点,但目前工具对他支持的不是很好,调试繁琐。苦于运维和调试比较困难,一直望而却步。恰逢十一,决心攻下这块碉堡。这边文章只是个引子,后续会做更详细的描述,不断完善。贴出实践的经验。
Java里成熟一点的框架属kilim,这个发音让我想起了俄罗斯的克林姆林宫。
顺便欣赏下美景吧。
确实豪华!
进程,线程,协程。简单理解如下。
进程:操作系统级别的,独占的资源比较多。是操作系统层面的并发。
线程:在一个进程中,共享进程的资源且线程之间又可以独立。是应用程序层面的并发。
协程:在一个线程中,共享线程的资源,避免了上下文切换,是用户级别的并发。
模型
Task,一个协程,重写execute方法。
Mailbox,协程之间的消息传递。他有3个重要的方法:
get()/set():阻塞协程,不阻塞线程。
getb()/setb():阻塞线程。
getnb()/setnb():不阻塞协程,也不阻塞线程。
环境搭建
难点在于支持持续集成,因为他需要织入class字节码。官方给的demo是用ant来写的。所以笔者结合经验,想到了maven的一个支持ant的插件maven-antrun-plugin,指定build.xml即可。执行ant插件,肯定要在编译之后,才可以织入class,因此有个语法很关键
<execution>
<phase>compile</phase>
<configuration>
<tasks>
<ant antfile="build.xml" target="weave" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
其中phase节点的意思是,在compile之后执行。而在build里面,只写了weave一个target,其他的是用于独立运行ant使用,并非给maven-antrun-plugin插件使用。关于kilim的jar包,我们需要自行安装到私服中,或者本地仓库。每次调试的时候,都需要在eclipse显示的执行mvn package才可以,所以从架构角度来讲,因为做成一个独立的jar包,就会方便调试。
其他
参考猫头哥另外一篇文章:http://phl.iteye.com/blog/1522366,kilim源码安装到仓库,支持javadoc和java-source需要配置插件和源码目录<sourceDirectory>src</sourceDirectory>,kilim源码不是个标准的maven工程。
官方例子中,有些指令写的不对,kilim必须要用jdk7
切换到源码目录,命令行处理方式如下
D:\project\eclipse3.6\kilim-1.0>
javac -cp kilim.jar -d D:\project\eclipse3.6\kilim-1.0\classes D:\project\eclipse3.6\kilim-1.0\examples\kilim\examples\SimpleTask.java
java -cp kilim.jar;libs\asm-all-4.1.jar;$CLASSPATH -d D:\project\eclipse3.6\kilim-1.0\classes kilim.tools.Weaver D:\project\eclipse3.6\kilim-1.0\classes\kilim\examples\SimpleTask.class
java -cp kilim.jar;D:\project\eclipse3.6\kilim-1.0\classes;$CLASSPATH kilim.examples.SimpleTask
参考资料
http://www.ibm.com/developerworks/cn/java/j-javadev2-7.html
http://segmentfault.com/a/1190000000697487
http://yueyemaitian.iteye.com/blog/1745690

- 描述: 内室
- 大小: 246.6 KB

- 描述: 室外
- 大小: 221 KB
分享到:
相关推荐
协程Coroutine和Kilim是两个与并发编程相关的概念,主要在Java开发环境中被讨论。在现代软件系统中,多线程和并发处理是提升性能和响应能力的关键技术。协程提供了一种轻量级的并发模型,它比传统的线程更高效,内存...
总结起来,尽管Java自身尚未在语言层面内置协程支持,但通过使用像Scala和Kilim这样的第三方工具,开发者可以在Java环境中实现类似协程的功能,以提升并发性能。随着技术的发展,未来的Java版本可能会考虑引入对协程...
JAVA版本他的系统源码Kilim :JVM 的延续、纤维、Actor 和消息传递 Kilim 由 2 个主要组件组成: Kilim weaver 修改已编译的 java 类的字节码,启用一种方法来保存它的状态并放弃对其线程的控制,即协同多任务 Kilim...
首先,Kilim是一个专注于提供轻量级线程(纤程)支持的Java库,它能够帮助开发者以更轻量级的方式来处理并发,从而提高程序的性能和响应速度。在分布式系统中,每一个微服务往往需要处理多个并发任务,而传统的线程...
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
《基于YOLOv8的智慧社区独居老人生命体征监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
Android Studio Meerkat 2024.3.1 Patch 1(android-studio-2024.3.1.14-mac.dmg)适用于macOS Intel系统,文件使用360压缩软件分割成两个压缩包,必须一起下载使用: part1: https://download.csdn.net/download/weixin_43800734/90557060 part2: https://download.csdn.net/download/weixin_43800734/90557056
侧轴承杯加工工艺编制及夹具设计.zip
NASA数据集锂电池容量特征提取(Matlab完整源码和数据) 作者介绍:机器学习之心,博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信。
板料折弯机液压系统设计.zip
C6150车床的设计.zip
机器学习之KNN实现手写数字
python爬虫;智能切换策略,反爬检测机制
mpls-vpn-optionA-all
56tgyhujikolp[
GB 6442-86企业职工伤亡事故调查分析规则.pdf
汽车液压式主动悬架系统的设计().zip
2000-2024年各省专利侵权案件结案数数据 1、时间:2000-2024年 2、来源:国家知识产权J 3、指标:专利侵权案件结案数 4、范围:31省 5、用途:可用于衡量知识产权保护水平
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
内容概要:本文档详细复现了金融数学课程作业,涵盖欧式看涨期权定价和投资组合优化两大部分。对于欧式看涨期权定价,分别采用Black-Scholes模型和蒙特卡洛方法进行了计算,并对彩虹期权进行了基于最大值的看涨期权定价。投资组合优化部分则探讨了最小方差组合、给定收益的最小方差组合、最大效用组合以及给定风险的最大收益组合四种情形,还对比了拉格朗日乘数法和二次规划求解器两种方法。文中不仅提供了详细的MATLAB代码,还有详尽的中文解释,确保每一步骤清晰明了。 适合人群:金融工程专业学生、量化分析师、金融数学爱好者。 使用场景及目标:①帮助学生理解和掌握金融衍生品定价的基本原理和方法;②为从事量化分析的专业人士提供实用工具和技术支持;③作为教学材料辅助高校教师讲授相关内容。 其他说明:文档还包括了完整的论文结构建议,从封面页到结论,再到附录,涵盖了所有必要元素,确保提交的作业符合学术规范。此外,还特别强调了数据预处理步骤,确保代码可以顺利运行。